code: def LayerNorm(
      x,
      epsilon=1e-5,
      *,
      center=True,
      scale=True,
      gamma_initializer=tf.ones_initializer(),
      data_format="channels_last",
  ):
      """
      Layer Normalization layer, as described in the paper:
      `Layer Normalization <https://arxiv.org/abs/1607.06450>`_.
  
      Args:
          x (tf.Tensor): a 4D or 2D tensor. When 4D, the layout should match data_format.
          epsilon (float): epsilon to avoid divide-by-zero.
          center, scale (bool): whether to use the extra affine transformation or not.
      """
      data_format = get_data_format(data_format, keras_mode=False)
      shape = x.get_shape().as_list()
      ndims = len(shape)
      assert ndims in [2, 4]
  
      mean, var = tf.nn.moments(
          x, list(range(1, len(shape))), keep_dims=True
      )
  
      if data_format == "NCHW":
          chan = shape[1]
          new_shape = [1, chan, 1, 1]
      else:
          chan = shape[-1]
          new_shape = [1, 1, 1, chan]
      if ndims == 2:
          new_shape = [1, chan]
  
      if center:
          beta = tf.get_variable(
              "beta", [chan], initializer=tf.constant_initializer()
          )
          beta = tf.reshape(beta, new_shape)
      else:
          beta = tf.zeros([1] * ndims, name="beta")
      if scale:
          gamma = tf.get_variable(
              "gamma", [chan], initializer=gamma_initializer
          )
          gamma = tf.reshape(gamma, new_shape)
      else:
          gamma = tf.ones([1] * ndims, name="gamma")
  
      ret = tf.nn.batch_normalization(
          x, mean, var, beta, gamma, epsilon, name="output"
      )
  
      vh = ret.variables = VariableHolder()
      if scale:
          vh.gamma = gamma
      if center:
          vh.beta = beta
      return ret
  
imports: from ..compat import tfv1
  from ..utils.argtools import get_data_format
  from ..utils.develop import log_deprecated
  from .common import VariableHolder, layer_register
  from .tflayer import convert_to_tflayer_args
label_desc: Use image node_id 1 for calling a global function with example usage: LayerNorm(x, epsilon) and returns: ret