class_docstr: FusedRNNCell implementation of LSTM.
  
  This is an extremely efficient LSTM implementation, that uses a single TF op
  for the entire LSTM. It should be both faster and more memory-efficient than
  LSTMBlockCell defined above.
  
  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.
  
  The variable naming is consistent with `rnn_cell_impl.LSTMCell`.
code: def build(self, input_shape):
      input_size = input_shape.dims[2].value
      self._kernel = self.add_variable(
          "kernel", [input_size + self._num_units, self._num_units * 4]
      )
      self._bias = self.add_variable(
          "bias",
          [self._num_units * 4],
          initializer=init_ops.constant_initializer(0.0),
      )
      if self._use_peephole:
          self._w_i_diag = self.add_variable(
              "w_i_diag", [self._num_units]
          )
          self._w_f_diag = self.add_variable(
              "w_f_diag", [self._num_units]
          )
          self._w_o_diag = self.add_variable(
              "w_o_diag", [self._num_units]
          )
  
      self.built = True
  
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 3 for calling the LSTMBlockFusedCell obj's underlying member method code with example usage: obj.build(input_shape) without return types