Advertisement
lamiastella

result changes for a specific fold each time I hit run

Nov 28th, 2018
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 19.65 KB | None | 0 0
  1. import ntpath
  2.  
  3. nb_classes = 9
  4.  
  5. import torch.nn.functional as F
  6.  
  7. confusion_matrix = torch.zeros(nb_classes, nb_classes)
  8.  
  9. _classes = []
  10. _preds = []
  11. predicted_labels = []
  12.  
  13. class_probs = torch.Tensor()
  14.  
  15. im_paths = []
  16. with torch.no_grad():
  17.     for i, (inputs, classes, im_path) in enumerate(dataloaders['test']):
  18.        
  19.  
  20.         im_paths.append(im_path)
  21.         inputs = inputs.to(device)
  22.         tmp_labels = model_ft(inputs)
  23.        
  24.         classes = classes.to(device)
  25.         classes_list = classes.cpu().detach().numpy().tolist()
  26.         _classes[:]=[i+1 for i in classes_list]
  27.         outputs = model_ft(inputs)
  28.        
  29.  
  30.  
  31.         class_probs = class_probs.cuda()
  32.        
  33.         class_probs = torch.cat((class_probs, F.softmax(outputs, 1)))
  34.  
  35.  
  36.    
  37.         _, preds = torch.max(outputs, 1)
  38.         preds_list = preds.cpu().detach().numpy().tolist()
  39.         _preds[:]=[i+1 for i in preds_list]
  40.          
  41.         predicted_labels.append(preds.cpu().detach().numpy().tolist())
  42.         for t, p in zip(classes.view(-1), preds.view(-1)):
  43.                 confusion_matrix[t.long(), p.long()] += 1
  44.                
  45. print(confusion_matrix)
  46. per_class_accuracies = (confusion_matrix.diag()/confusion_matrix.sum(1)).cpu().detach().numpy().tolist()
  47.  
  48. print(','.join("{:2.04f}".format(x) for x in per_class_accuracies))
  49. for i in range(nb_classes):
  50.     print("class {:d} --> accuracy: {:.2f}, correct predictions: {:d}, all: {:d}".format(i+1, (confusion_matrix.diag()/confusion_matrix.sum(1))[i]*100, int(confusion_matrix[i][i].numpy()), int(confusion_matrix.sum(dim=1)[i].numpy())))
  51.    
  52.  
  53.  
  54.  
  55. flattened_im_paths = flattened = [item for sublist in im_paths for item in sublist]
  56.  
  57. for i in range(len(flattened_im_paths)):
  58.     class_p = class_probs[i].cpu().detach().numpy().tolist()
  59.  
  60.     print('{}, {}'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement