Im not sure if you got me right.
My first task is a binary classification task. And for illustration I want to display the image with the associated probability on it. And therefore I need to apply for example F.sigmoid() to the output of the net before I can apply F.softmax() because with only softmax I get wired results for the probabilities. (Thats because of the positive and negative outputs of my net that F.softmax() can’t handle alone)
And in my next task a have more than 2 classes and want to illustrate the same. I do thats the same way. First sigmoid then softmax.
While training the net for the binary classification I apply sigmoid to the outputs first and then I send them in my loss function which is F.binary_cross_entropy. And then I propagate back.
While training the net for the multiple classification. I send the outputs straight into the loss function nn.CrossEntropyLoss()  because that loss function combines nn.LogSoftmax() and  nn.NLLLoss(). Because of that combination I thought I don’t have to apply another function before I can send the outputs into the loss function.
You see something wrong here ?