F.log_softmax is usually used with nn.NLLLoss, while you are using nn.BCELoss, which expects a sigmoid output.
The former can be used for a multi-class classification, the latter for a binary classification or a multi-label classification.
I would recommend to remove the F.log_softmax and replace it with torch.sigmoid or change the criterion, if this fits your use case.