def init_hidden(self, batch_size):
b = <NUM_LIT:2> if self.bidirectional else <NUM_LIT:1><EOL>if self.use_cuda:<EOL><INDENT>return (<EOL>torch.zeros(self.num_layers * b, batch_size, self.lstm_hidden).cuda(),<EOL>torch.zeros(self.num_layers * b, batch_size, self.lstm_hidden).cuda(),<EOL>)<EOL><DEDENT>else:<EOL><INDENT>return (<EOL>torch.zeros(self.num_layers * b, batch_size, self.lstm_hidden),<EOL>torch.zeros(self.num_layers * b, batch_size, self.lstm_hidden),<EOL>)<EOL><DEDENT>
Initiate the initial state.

        :param batch_size: batch size.
        :type batch_size: int
        :return: Initial state of LSTM
        :rtype: pair of torch.Tensors of shape (num_layers * num_directions,
            batch_size, hidden_size)