def forward(self, inputs):
batch_sz = inputs.size(0) # should be batch_sz (~200 in old set-up)
inputs = torch.transpose(inputs,0,1)
h0 = self.init_hidden_state(batch_sz)
rnn_output, h_n = self.rnn.forward(inputs, h0)
# get "output" after linear layer.
output = self.lin_out.forward(rnn_output.view(rnn_output.size(0)*rnn_output.size(1), rnn_output.size(2)))
L, N = rnn_output.size(0), rnn_output.size(1)
C = output.size(1)
assert L*N == output.size(0), "ERROR: mismatch in output tensor dimensions"
fin_out = output.view(L, N, C)
fin_out = torch.transpose(fin_out,0,1)
fin_out = fin_out.contiguous().view(N*L, C)
return fin_out, rnn_output
评论列表
文章目录