code: def norm(x, scope, axis=-1, e=None, fp16=False):
      with tf.compat.v1.variable_scope(scope):
          e = e or 1e-5
          n_state = shape_list(x)[-1]
          g = tf.compat.v1.get_variable(
              "g",
              [n_state],
              initializer=tf.compat.v1.constant_initializer(1),
          )
          b = tf.compat.v1.get_variable(
              "b",
              [n_state],
              initializer=tf.compat.v1.constant_initializer(0),
          )
          if fp16:
              g = tf.cast(g, tf.float16)
              b = tf.cast(b, tf.float16)
          u = tf.reduce_mean(input_tensor=x, axis=axis, keepdims=True)
          s = tf.reduce_mean(
              input_tensor=tf.square(x - u), axis=axis, keepdims=True
          )
          x = (x - u) * tf.math.rsqrt(s + e)
          x = x * g + b
          return x
  
file_path: finetune/finetune/base_models/oscar/featurizer.py
imports: import tensorflow
  from finetune.base_models.gpt.featurizer import dropout, embed, split_heads, merge_heads
  from finetune.util.shapes import shape_list, lengths_from_eos_idx
  from finetune.custom_ops import recursive_agg
  from finetune.base_models.gpt.featurizer import get_pos_values
  from finetune.optimizers.recompute_grads import recompute_grad
  import functools
label_desc: Use image node_id 2 for calling a global function with example usage: norm(x, scope, axis, e, fp16) and returns: x