I would be very grateful if someone could point me in the right direction on this, because I’m having trouble understanding how I can achieve what I need.
I’m using a slightly modified version of this notebook:
I have modified it to use my own dataset. Another modification I have made is to this block of code :
# pick one image from the test set img, _ = dataset_test # put the model in evaluation mode model.eval() with torch.no_grad(): prediction = model([img.to(device)])
### To iterate through dataset_test: #put model in prediction mode model.eval() #function to iterate through test set and return a list of predictions def prediction_iterator(): predictions =  for img, _ in dataset_test: with torch.no_grad(): prediction = model([img.to(device)]) predictions.append(prediction) return predictions prediction_list = prediction_iterator()
This change is just so that I can make a series of predictions on the test set. I’m not totally sure if this is the best way to go about this, but it seems to work as far as I can see.
My issue is now that I want to get the IoUs for each prediction, as I want to compute True/False positive, True/False negative confusion matrices, Precision and Recall, F1, etc.
I realise the evaluate function spits out average precision and recall, but as I say I want to do a bit more than that.
I did use torch.save and then torch.load to save out the predictions (prediction_list) as a .csv, but the result was just that all tensors were listed as a string in one column. I considered using RegEx to split this string up, but I would really prefer if I could get it in the right format to begin with so I can scale this easily.
Apologies if I’m not explaining very well or if this is an obvious problem - if there are any more details you need, please let me know.