Должно сработать, ошибка вероятно пришла откуда-то еще. Например, эта работа:
feature_dim = 15
hidden_size = 5
num_layers = 2
seq_len = 5
batch_size = 3
lstm = nn.LSTM(input_size=feature_dim,
hidden_size=hidden_size, num_layers=num_layers)
t1 = torch.from_numpy(np.random.uniform(0,1,size=(seq_len, batch_size, feature_dim))).float()
output, states = lstm.forward(t1)
hidden_state, cell_state = states
print("output: ",output.size())
print("hidden_state: ",hidden_state.size())
print("cell_state: ",cell_state.size())
и return
output: torch.Size([5, 3, 5])
hidden_state: torch.Size([2, 3, 5])
cell_state: torch.Size([2, 3, 5])
Используете ли вы вывод где-то после lstm? Вы заметили, что он имеет размер, равный скрытому dim ie 5 на последнем тусклом? Похоже, вы потом используете его, думая, что он имеет размер 15 вместо