docstr: Updates the internal state and returns the LSTM outputs.
  
  Args:
      x (~chainer.Variable): A new batch from the input sequence.
  
  Returns:
      ~chainer.Variable: Outputs of updated LSTM units.
docstr_tok: ["Updates","the","internal","state","and","returns","the","LSTM","outputs",".","Args",":","x","(","~chainer.Variable",")",":","A","new","batch","from","the","input","sequence",".","Returns",":","~chainer.Variable",":","Outputs","of","updated","LSTM","units","."]
code: def forward(self, x):
      """Updates the internal state and returns the LSTM outputs.
  
      Args:
          x (~chainer.Variable): A new batch from the input sequence.
  
      Returns:
          ~chainer.Variable: Outputs of updated LSTM units.
  
      """
      lstm_in = self.upward(x)
      if self.h is not None:
          lstm_in += self.lateral(self.h)
      else:
          xp = self.xp
          with chainer.using_device(self.device):
              self.h = variable.Variable(
                  xp.zeros((len(x), self.state_size), dtype=x.dtype)
              )
      if self.c is None:
          xp = self.xp
          with chainer.using_device(self.device):
              self.c = variable.Variable(
                  xp.zeros((len(x), self.state_size), dtype=x.dtype)
              )
  
      lstm_in = reshape.reshape(
          lstm_in, (len(lstm_in), lstm_in.shape[1] // 4, 4)
      )
  
      a, i, f, o = split_axis.split_axis(lstm_in, 4, 2)
      a = reshape.reshape(a, (len(a), self.state_size))
      i = reshape.reshape(i, (len(i), self.state_size))
      f = reshape.reshape(f, (len(f), self.state_size))
      o = reshape.reshape(o, (len(o), self.state_size))
  
      c_tmp = (
          tanh.tanh(a) * sigmoid.sigmoid(i)
          + sigmoid.sigmoid(f) * self.c
      )
      self.c = zoneout.zoneout(self.c, c_tmp, self.c_ratio)
      self.h = zoneout.zoneout(
          self.h, sigmoid.sigmoid(o) * tanh.tanh(c_tmp), self.h_ratio
      )
      return self.h
  
file_path: chainer/chainer/links/rnn/zoneoutlstm.py
imports: import chainer
  from chainer.functions.activation import sigmoid
  from chainer.functions.activation import tanh
  from chainer.functions.array import reshape
  from chainer.functions.array import split_axis
  from chainer.functions.noise import zoneout
  from chainer import link
  from chainer.links.connection import linear
  from chainer.utils import argument
  from chainer import variable
label_desc: Use image node_id 5 for calling the StatefulZoneoutLSTM obj's underlying member method code with example usage: obj.forward(x) and returns: self