Not completely.
I am using CrossEntropyLoss (will be trying out https://github.com/vandit15/Class-balanced-loss-pytorch/blob/master/class_balanced_loss.py 5 tomrrow) however the output of the CrossEntropyLoss is a single scalar.
By applying softmax (which you shouldn’t do before CrossEntropyLoss as it applies logmax within) we get a distribution of probabilities of an image being any of the existing classes.
Using that I can inspect which class is being predicted, and if it’s not the correct one, then how inaccurate is it (is the correct label second most-likely or is it not even considering it in the slightest).
e.g: this is the output of softmax on the first batch of epoch 0
['0.058431108',
   '0.039843343',
   '0.06623752',
   '0.045099676',
   '0.05649936',
   '0.06612508',
   '0.050207447',
   '0.08593371',
   '0.0660381',
   '0.043260027',
   '0.06524337',
   '0.043747015',
   '0.034064077',
   '0.06968668',
   '0.057958122',
   '0.06703147',
   '0.042366467',
   '0.04222748']

They all sum to 1 (as probabilities should) and they represent the probability of each class being the correct answer.
But how do I link each of the probabilities to the class??
is prob[0] == class_1 or maybe class_10?
It’s impossible to tell, and that is what I am looking for!