class_docstr: Basic LSTM recurrent network cell.
  
  The implementation is based on: http://arxiv.org/abs/1409.2329.
  
  We add `forget_bias` (default: 1) to the biases of the forget gate in order to
  reduce the scale of forgetting in the beginning of the training.
  
  Unlike `rnn_cell_impl.LSTMCell`, this is a monolithic op and should be much
  faster.  The weight and bias matrices should be compatible as long as the
  variable scope matches.
docstr: Initialize the basic LSTM cell.
  
  Args:
    num_units: int, The number of units in the LSTM cell.
    forget_bias: float, The bias added to forget gates (see above).
    cell_clip: An optional `float`. Defaults to `-1` (no clipping).
    use_peephole: Whether to use peephole connections or not.
    dtype: the variable dtype of this layer. Default to tf.float32.
    reuse: (optional) boolean describing whether to reuse variables in an
      existing scope.  If not `True`, and the existing scope already has the
      given variables, an error is raised.
    name: String, the name of the layer. Layers with the same name will
      share weights, but to avoid mistakes we require reuse=True in such
      cases.  By default this is "lstm_cell", for variable-name compatibility
      with `tf.compat.v1.nn.rnn_cell.LSTMCell`.
  
    When restoring from CudnnLSTM-trained checkpoints, must use
    CudnnCompatibleLSTMBlockCell instead.
docstr_tok: ["Initialize","the","basic","LSTM","cell",".","Args",":","num_units",":","int",",","The","number","of","units","in","the","LSTM","cell",".","forget_bias",":","float",",","The","bias","added","to","forget","gates","(","see","above",")",".","cell_clip",":","An","optional","`","float","`",".","Defaults","to","`","-1","`","(","no","clipping",")",".","use_peephole",":","Whether","to","use","peephole","connections","or","not",".","dtype",":","the","variable","dtype","of","this","layer",".","Default","to","tf.float32",".","reuse",":","(","optional",")","boolean","describing","whether","to","reuse","variables","in","an","existing","scope",".","If","not","`","True","`",",","and","the","existing","scope","already","has","the","given","variables",",","an","error","is","raised",".","name",":","String",",","the","name","of","the","layer",".","Layers","with","the","same","name","will","share","weights",",","but","to","avoid","mistakes","we","require","reuse=True","in","such","cases",".","By","default","this","is","``","lstm_cell","''",",","for","variable-name","compatibility","with","`","tf.compat.v1.nn.rnn_cell.LSTMCell","`",".","When","restoring","from","CudnnLSTM-trained","checkpoints",",","must","use","CudnnCompatibleLSTMBlockCell","instead","."]
code: def __init__(
      self,
      num_units,
      forget_bias=1.0,
      cell_clip=None,
      use_peephole=False,
      dtype=None,
      reuse=None,
      name="lstm_cell",
  ):
      """Initialize the basic LSTM cell.
  
      Args:
        num_units: int, The number of units in the LSTM cell.
        forget_bias: float, The bias added to forget gates (see above).
        cell_clip: An optional `float`. Defaults to `-1` (no clipping).
        use_peephole: Whether to use peephole connections or not.
        dtype: the variable dtype of this layer. Default to tf.float32.
        reuse: (optional) boolean describing whether to reuse variables in an
          existing scope.  If not `True`, and the existing scope already has the
          given variables, an error is raised.
        name: String, the name of the layer. Layers with the same name will
          share weights, but to avoid mistakes we require reuse=True in such
          cases.  By default this is "lstm_cell", for variable-name compatibility
          with `tf.compat.v1.nn.rnn_cell.LSTMCell`.
  
        When restoring from CudnnLSTM-trained checkpoints, must use
        CudnnCompatibleLSTMBlockCell instead.
      """
      super(LSTMBlockCell, self).__init__(
          _reuse=reuse, dtype=dtype, name=name
      )
      self._num_units = num_units
      self._forget_bias = forget_bias
      self._use_peephole = use_peephole
      self._cell_clip = cell_clip if cell_clip is not None else -1
      self._names = {
          "W": "kernel",
          "b": "bias",
          "wci": "w_i_diag",
          "wcf": "w_f_diag",
          "wco": "w_o_diag",
          "scope": "lstm_cell",
      }
      # Inputs must be 2-dimensional.
      self.input_spec = input_spec.InputSpec(ndim=2)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import abc
  import six
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.keras.engine import input_spec
  from tensorflow.python.layers import base
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_rnn_ops
  from tensorflow.python.ops import init_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.ops import rnn_cell_impl
label_desc: Use image node_id 1 to create a new LSTMBlockCell object from inherited base classes: LayerRNNCell with example: obj = LSTMBlockCell(num_units, forget_bias, cell_clip, use_peephole, dtype, reuse, name)