<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def init_hidden(self, batch_size):
 """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) """


        b = 2 if self.bidirectional else 1
        if self.use_cuda:
            return (
                torch.zeros(self.num_layers * b, batch_size, self.lstm_hidden).cuda(),
                torch.zeros(self.num_layers * b, batch_size, self.lstm_hidden).cuda(),
            )
        else:
            return (
                torch.zeros(self.num_layers * b, batch_size, self.lstm_hidden),
                torch.zeros(self.num_layers * b, batch_size, self.lstm_hidden),
            )