class_docstr: Layer normalization using mean and variance
  gamma and beta are the learnable parameters
docstr: Initialize parameters.
  
  Args:
      seq_max_len (int): Maximum sequence length.
      embedding_dim (int): Embedding dimension.
      epsilon (float): Epsilon value.
docstr_tok: ["Initialize","parameters",".","Args",":","seq_max_len","(","int",")",":","Maximum","sequence","length",".","embedding_dim","(","int",")",":","Embedding","dimension",".","epsilon","(","float",")",":","Epsilon","value","."]
code: def __init__(self, seq_max_len, embedding_dim, epsilon):
      """Initialize parameters.
  
      Args:
          seq_max_len (int): Maximum sequence length.
          embedding_dim (int): Embedding dimension.
          epsilon (float): Epsilon value.
      """
      super(LayerNormalization, self).__init__()
      self.seq_max_len = seq_max_len
      self.embedding_dim = embedding_dim
      self.epsilon = epsilon
      self.params_shape = (self.seq_max_len, self.embedding_dim)
      g_init = tf.ones_initializer()
      self.gamma = tf.Variable(
          initial_value=g_init(
              shape=self.params_shape, dtype="float32"
          ),
          trainable=True,
      )
      b_init = tf.zeros_initializer()
      self.beta = tf.Variable(
          initial_value=b_init(
              shape=self.params_shape, dtype="float32"
          ),
          trainable=True,
      )
  
imports: import random
  import numpy
  from tqdm import tqdm
  import tensorflow
  from recommenders.utils.timer import Timer
label_desc: Use image node_id 1 to create a new LayerNormalization object from inherited base classes: tf.keras.layers with example: obj = LayerNormalization(seq_max_len, embedding_dim, epsilon)