Your code works fine after adding the suggested chages:
output = model(batch_x.float())
loss = loss_fn(output, batch_y.float())




 wboy:

Is my network even correct…?


No, since you should remove the F.log_softmax activation if you are using nn.BCEWithLogitsLoss.