For a better numerical stability you could remove the sigmoid and use nn.BCEWithLogitsLoss instead of nn.BCELoss. If this doesn’t change anything, try to overfit a small dataset (e.g. just 10 samples), as your model training might be stuck (and the outputs might just be the bias parameters from your model).