My experience with this was different, when I was training a test model to test this exact thing I noticed that when I applied nn.Sigmoid on model output and used BCELoss() I got very bad results, my loss actually went to NaN after some iterations.
Similarly when I did not use nn.Sigmoid at model output and used BCEWithLogitsLoss() I agaain got bad results, no more NaN’s but error was not dropping from 0.999
Then I used nn.Sigmoid and BCEWithLogitsLoss() and got expected results, loss was dropping and so was error.
So can you please mention why these two dont go well together whereas my tests showed them working together.
Thanks