Hi,

During the first forward-pass, loss is expected to be around log(num_classes) ie
log(40) = 3.688.
Adding to your point of loss>1, it is not necessary that loss should be always <1.

nn.CrossEntropyLoss() is actually a combination of nn.LogSoftmax() and nn.NLLLoss(). Refer  this 7 doc.
That’s why it when you print loss, it shows <grad_fn = NLLLossBackward>