Hi,
I notice that when you do bidirectional LSTM in pytorch, it is common to do floor division on hidden dimension for example:
def init_hidden(self):
    return (autograd.Variable(torch.randn(2, 1, self.hidden_dim // 2)),
            autograd.Variable(torch.randn(2, 1, self.hidden_dim // 2)))

http://pytorch.org/tutorials/beginner/nlp/advanced_tutorial.html#sphx-glr-beginner-nlp-advanced-tutorial-py 908
I’m not quite sure why do we need to do this extra step when changing from uni-directional to bi-directional LSTM.