class_docstr: ZoneOut Cell module.
  
  This is a module of zoneout described in
  `Zoneout: Regularizing RNNs by Randomly Preserving Hidden Activations`_.
  This code is modified from `eladhoffer/seq2seq.pytorch`_.
  
  Examples:
      >>> lstm = torch.nn.LSTMCell(16, 32)
      >>> lstm = ZoneOutCell(lstm, 0.5)
  
  .. _`Zoneout: Regularizing RNNs by Randomly Preserving Hidden Activations`:
      https://arxiv.org/abs/1606.01305
  
  .. _`eladhoffer/seq2seq.pytorch`:
      https://github.com/eladhoffer/seq2seq.pytorch
docstr: Calculate forward propagation.
  
  Args:
      inputs (Tensor): Batch of input tensor (B, input_size).
      hidden (tuple):
          - Tensor: Batch of initial hidden states (B, hidden_size).
          - Tensor: Batch of initial cell states (B, hidden_size).
  
  Returns:
      tuple:
          - Tensor: Batch of next hidden states (B, hidden_size).
          - Tensor: Batch of next cell states (B, hidden_size).
docstr_tok: ["Calculate","forward","propagation",".","Args",":","inputs","(","Tensor",")",":","Batch","of","input","tensor","(","B",",","input_size",")",".","hidden","(","tuple",")",":","-","Tensor",":","Batch","of","initial","hidden","states","(","B",",","hidden_size",")",".","-","Tensor",":","Batch","of","initial","cell","states","(","B",",","hidden_size",")",".","Returns",":","tuple",":","-","Tensor",":","Batch","of","next","hidden","states","(","B",",","hidden_size",")",".","-","Tensor",":","Batch","of","next","cell","states","(","B",",","hidden_size",")","."]
code: def forward(self, inputs, hidden):
      """Calculate forward propagation.
  
      Args:
          inputs (Tensor): Batch of input tensor (B, input_size).
          hidden (tuple):
              - Tensor: Batch of initial hidden states (B, hidden_size).
              - Tensor: Batch of initial cell states (B, hidden_size).
  
      Returns:
          tuple:
              - Tensor: Batch of next hidden states (B, hidden_size).
              - Tensor: Batch of next cell states (B, hidden_size).
  
      """
      next_hidden = self.cell(inputs, hidden)
      next_hidden = self._zoneout(
          hidden, next_hidden, self.zoneout_rate
      )
      return next_hidden
  
imports: import torch
  import torch.nn.functional
  from espnet.nets.pytorch_backend.rnn.attentions import AttForwardTA
label_desc: Use image node_id 2 for calling the ZoneOutCell obj's underlying member method code with example usage: obj.forward(inputs, hidden) and returns: next_hidden