class Classifier(nn.Module):
def __init__(self):
super(Classifier, self).__init__()
self.LSTM1 = nn.LSTM(input_size = 256, hidden_size = 1024)
self.LSTM2 = nn.LSTM(input_size = 1024, hidden_size = 1024)
self.LSTM3 = nn.LSTM(input_size = 1024, hidden_size = 1024)
self.LSTM4 = nn.LSTM(input_size = 1024, hidden_size = 1024)
self.LSTM5 = nn.LSTM(input_size = 1024, hidden_size = 1024)
self.LSTM6 = nn.LSTM(input_size = 1024, hidden_size = 256)
def forward(self, x):
result, (hn, cn) = self.LSTM1(x)
result, (hn, cn) = self.LSTM2(result, (hn, cn))
result, (hn, cn) = self.LSTM3(result, (hn, cn))
result, (hn, cn) = self.LSTM4(result, (hn, cn))
result, (hn, cn) = self.LSTM5(result, (hn, cn))
result, (hn, cn) = self.LSTM6(result, (hn, cn))
return result
Architecture that I made above thrown an error
RuntimeError: Expected hidden[0] size (1, 256, 256), got (1, 256, 1024)
But, if I remove (hn, cn) in self.LSTM6, it run well. why does hidden cell affect the LSTM layer?