target = target.unsqueeze(1)
, before passing target to criterion, changed the target tensor size from [16]
to [16,1]
. Doing it solved the issue. Furthermore, I also needed to do target = target.float()
before passing it to criterion, because our outputs are in float. Besides, there was another error in the code. I was using sigmoid activation function in the last layer, but I shouldn’t because the criterion I am using already comes with sigmoid builtin.