Confusion Matrix And Test Accuracy For PyTorch Transfer Learning Tutorial
Answer : Answer given by ptrblck of PyTorch community. Thanks a lot! nb_classes = 9 confusion_matrix = torch.zeros(nb_classes, nb_classes) with torch.no_grad(): for i, (inputs, classes) in enumerate(dataloaders['val']): inputs = inputs.to(device) classes = classes.to(device) outputs = model_ft(inputs) _, preds = torch.max(outputs, 1) for t, p in zip(classes.view(-1), preds.view(-1)): confusion_matrix[t.long(), p.long()] += 1 print(confusion_matrix) To get the per-class accuracy: print(confusion_matrix.diag()/confusion_matrix.sum(1)) Here is a slightly modified(direct) approach using sklearn's confusion_matrix:- from sklearn.metrics import confusion_matrix nb_classes = 9 # Initialize the prediction and label lists(tensors) predlist=torch.zeros(0,dtype=torch.long, device='cpu') lbllist=torch.zeros(0,dtype=torch.long, device='cpu') with torch.no_grad(): for i, (inputs, classes) in enumerate(da...