LSTM returning only zeros (PyTorch)
After succesfully implementing a LSTM "from scratch" based on linear layers, I decided to start using the existing LSTM class to make things easier and gain in performance.
But somehow when I try it, it only returns tensors full of zeros.
Here is the model : 

class pytorchLSTM(nn.Module):
    def __init__(self,input_size,hidden_size):
        super().__init__()
        self.input_size = input_size
        self.hidden_size = hidden_size
        self.lstm = nn.LSTM(input_size, hidden_size)
        self.softmax = nn.LogSoftmax(dim = 1)

    def forward(self, input):
        out, hidden = self.lstm(input)
        out = self.softmax(out)
        return out, hidden


the input is a (1,1,60) tensor representing a one-hot encoded letter : 

tensor([[[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
          0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
          0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
          0., 0., 0., 0., 0., 0., 0., 1., 0.]]])


and the models returns, invariably (I tried modifying the values inside of the input, but the result is always the same) : 

tensor([[[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
           0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
           0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
           0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
           0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
           0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]]],
        grad_fn=&lt;LogSoftmaxBackward&gt;)


Any idea where my mistake is and what I understood wrong about the LSTM class ?

You are passing input of shape (1,1,60), which can be described as (sequence_length, batch_size, feature_size), where feature_size is binary.

I'm not sure why you are using LogSoftmax at all as it's discouraged and numerically unstable and it's advised to use torch.nn.CrossEntropyLoss taking logits straight out of your network, but that's not the problem here (might be later).

IIUC you are trying to predict another tensor of shape (sequence_length, batch_size, feature_size), e.g. next letter in the word (or the same later as inputted, dunno).
You need to do LogSoftmax(dim=2) (not sure if dim=-1 will work), currently you are softmaxing batch dimension.
