class_docstr: Cell for Sequential User Matrix
class_docstr_tok: ["Cell","for","Sequential","User","Matrix"]
docstr: Common initialization operations for SUM cell and its variants.
  This function creates parameters for the cell.
docstr_tok: ["Common","initialization","operations","for","SUM","cell","and","its","variants",".","This","function","creates","parameters","for","the","cell","."]
code: def _basic_build(self, inputs_shape):
      """Common initialization operations for SUM cell and its variants.
      This function creates parameters for the cell.
      """
  
      d = inputs_shape[-1]
      h = self._real_units
      s = self._slots
  
      self._erase_W = self.add_variable(
          name="_erase_W",
          shape=[d + h, h],
          initializer=self._kernel_initializer,
      )
      self._erase_b = self.add_variable(
          name="_erase_b",
          shape=[h],
          initializer=(
              self._bias_initializer
              if self._bias_initializer is not None
              else init_ops.constant_initializer(1.0, dtype=self.dtype)
          ),
      )
  
      self._reset_W = self.add_variable(
          name="_reset_W",
          shape=[d + h, 1],
          initializer=self._kernel_initializer,
      )
      self._reset_b = self.add_variable(
          name="_reset_b",
          shape=[1],
          initializer=(
              self._bias_initializer
              if self._bias_initializer is not None
              else init_ops.constant_initializer(1.0, dtype=self.dtype)
          ),
      )
  
      self._add_W = self.add_variable(
          name="_add_W",
          shape=[d + h, h],
          initializer=self._kernel_initializer,
      )
      self._add_b = self.add_variable(
          name="_add_b",
          shape=[h],
          initializer=(
              self._bias_initializer
              if self._bias_initializer is not None
              else init_ops.constant_initializer(1.0, dtype=self.dtype)
          ),
      )
      self.heads = self.add_variable(
          name="_heads",
          shape=[s, d],
          initializer=self._kernel_initializer,
      )
  
      self._beta = self.add_variable(
          name="_beta_no_reg",
          shape=(),
          initializer=tf.compat.v1.constant_initializer(
              np.array([1.02]), dtype=np.float32
          ),
      )
      self._alpha = self.add_variable(
          name="_alpha_no_reg",
          shape=(),
          initializer=tf.compat.v1.constant_initializer(
              np.array([0.98]), dtype=np.float32
          ),
      )
  
imports: import numpy
  import tensorflow
  from keras.layers.legacy_rnn.rnn_cell_impl import LayerRNNCell
  from tensorflow.python.eager import context
  from tensorflow.python.keras import activations
  from tensorflow.python.keras import initializers
  from tensorflow.python.keras.utils import tf_utils
  from tensorflow.python.ops import math_ops
  from tensorflow.python.platform import tf_logging
  from tensorflow.python.ops import init_ops
  from tensorflow.python.framework import dtypes
  from tensorflow.python.util import nest
label_desc: Use image node_id 4 for calling the SUMCell obj's underlying member method code with example usage: obj._basic_build(inputs_shape) without return types