I have the following LSTM:
self.lstm_x = nn.LSTM(27, 50, num_layers=1, batch_first=True)
with hidden state initialization:
hidden_x = (autograd.Variable(torch.randn(1, 1, 50)), autograd.Variable(torch.randn((1, 1, 50))))
Execution of the statement: feat_x, _ = self.lstm_x(X, self.hidden_x) gives the following error:
RuntimeError: Expected hidden size (1, 401, 50), got (1, 1, 50).
Here, X.size = torch.Size([401, 20, 27]) and self.hidden_x[0].size() = torch.Size([1, 1, 50]). 401 is the number of samples in the dataset and batch_size = 2046.
If I execute the same code without Cuda, everything runs fine. To run with Cuda I did the following changes:


net -> net.cuda()


nn.CrossEntropyLoss() -> nn.CrossEntropyLoss().cuda()

For each tensor, x ->x.cuda()


hidden_x = (autograd.Variable(torch.randn(1, 1, 50)), autograd.Variable(torch.randn((1, 1, 50)))) -> hidden_x = (autograd.Variable(torch.randn(1, 1, 50).cuda()), autograd.Variable(torch.randn(1, 1, 50).cuda()))


Thanks for any help.