Your current code throws an error, if I pass an input of shape [50, 256] to it in the self.lstm layer.
For the batch_first=True argument, the input should be [batch_size, seq, feature], so just passing embeds without the view gets rid of this error.
If you would like to use the output features of all time samples, setting in_features=256*256 should work, as you already tried.
That being said, if you are using nn.NLLLoss, you should apply F.log_softmax on your output instead of F.sigmoid.
Could you change that and try to train your model again?