code: def batch_normalization(
      x, mean, variance, offset, scale, variance_epsilon, name=None
  ):
      r"""Batch normalization.
  
      Normalizes a tensor by `mean` and `variance`, and applies (optionally) a
      `scale` \\(\gamma\\) to it, as well as an `offset` \\(\beta\\):
  
      \\(\frac{\gamma(x-\mu)}{\sigma}+\beta\\)
  
      `mean`, `variance`, `offset` and `scale` are all expected to be of one of two
      shapes:
  
        * In all generality, they can have the same number of dimensions as the
          input `x`, with identical sizes as `x` for the dimensions that are not
          normalized over (the 'depth' dimension(s)), and dimension 1 for the
          others which are being normalized over.
          `mean` and `variance` in this case would typically be the outputs of
          `tf.nn.moments(..., keepdims=True)` during training, or running averages
          thereof during inference.
        * In the common case where the 'depth' dimension is the last dimension in
          the input tensor `x`, they may be one dimensional tensors of the same
          size as the 'depth' dimension.
          This is the case for example for the common `[batch, depth]` layout of
          fully-connected layers, and `[batch, height, width, depth]` for
          convolutions.
          `mean` and `variance` in this case would typically be the outputs of
          `tf.nn.moments(..., keepdims=False)` during training, or running averages
          thereof during inference.
  
      See equation 11 in Algorithm 2 of source:
      [Batch Normalization: Accelerating Deep Network Training by
      Reducing Internal Covariate Shift; S. Ioffe, C. Szegedy]
      (http://arxiv.org/abs/1502.03167).
  
      Args:
        x: Input `Tensor` of arbitrary dimensionality.
        mean: A mean `Tensor`.
        variance: A variance `Tensor`.
        offset: An offset `Tensor`, often denoted \\(\beta\\) in equations, or
          None. If present, will be added to the normalized tensor.
        scale: A scale `Tensor`, often denoted \\(\gamma\\) in equations, or
          `None`. If present, the scale is applied to the normalized tensor.
        variance_epsilon: A small float number to avoid dividing by 0.
        name: A name for this operation (optional).
  
      Returns:
        the normalized, scaled, offset tensor.
  
      References:
        Batch Normalization - Accelerating Deep Network Training by Reducing
        Internal Covariate Shift:
          [Ioffe et al., 2015](http://arxiv.org/abs/1502.03167)
          ([pdf](http://proceedings.mlr.press/v37/ioffe15.pdf))
      """
      with ops.name_scope(
          name, "batchnorm", [x, mean, variance, scale, offset]
      ):
          inv = math_ops.rsqrt(variance + variance_epsilon)
          if scale is not None:
              inv *= scale
          # Note: tensorflow/contrib/quantize/python/fold_batch_norms.py depends on
          # the precise order of ops that are generated by the expression below.
          return x * math_ops.cast(inv, x.dtype) + math_ops.cast(
              offset - mean * inv
              if offset is not None
              else -mean * inv,
              x.dtype,
          )
  
imports: import math
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import array_ops_stack
  from tensorflow.python.ops import candidate_sampling_ops
  from tensorflow.python.ops import cond
  from tensorflow.python.ops import ctc_ops
  from tensorflow.python.ops import custom_gradient
  from tensorflow.python.ops import embedding_ops
  from tensorflow.python.ops import gen_nn_ops
  from tensorflow.python.ops import gen_sparse_ops
  from tensorflow.python.ops import linalg_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import nn_fused_batch_norm_grad
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.platform import device_context
  from tensorflow.python.util import dispatch
  from tensorflow.python.util.deprecation import deprecated_args
  from tensorflow.python.util.deprecation import deprecated_argument_lookup
  from tensorflow.python.util.tf_export import tf_export
label_desc: Use image node_id 23 for calling a global function with example usage: batch_normalization(x, mean, variance, offset, scale, variance_epsilon, name) and returns: unknown