code: def __init__(
      self,
      in_size,
      out_size=None,
      lateral_init=None,
      upward_init=None,
      bias_init=None,
      forget_bias_init=None,
  ):
      if out_size is None:
          out_size, in_size = in_size, None
  
      super(LSTMBase, self).__init__()
      if bias_init is None:
          bias_init = 0
      if forget_bias_init is None:
          forget_bias_init = 1
      self.state_size = out_size
      self.lateral_init = lateral_init
      self.upward_init = upward_init
      self.bias_init = bias_init
      self.forget_bias_init = forget_bias_init
  
      with self.init_scope():
          self.upward = linear.Linear(in_size, 4 * out_size, initialW=0)
          self.lateral = linear.Linear(
              out_size, 4 * out_size, initialW=0, nobias=True
          )
          if in_size is not None:
              self._initialize_params()
  
imports: import six
  import chainer
  from chainer.functions.array import concat
  from chainer.functions.array import split_axis
  from chainer.functions.rnn import lstm
  from chainer import initializers
  from chainer import link
  from chainer.links.connection import linear
  from chainer import utils
  from chainer import variable
label_desc: Use image node_id 1 to create a new LSTMBase object from inherited base classes: link with example: obj = LSTMBase(in_size, out_size, lateral_init, upward_init, bias_init, forget_bias_init)