code: def batch_normalization(x, mean, variance, offset, scale, variance_epsilon, data_format, name=None):
      
      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
  
          a = math_ops.cast(inv, x.dtype)
          b = math_ops.cast(offset - mean * inv if offset is not None else -mean * inv, x.dtype)
  
          # Return a * x + b with customized data_format.
          # Currently TF doesn't have bias_scale, and tensorRT has bug in converting tf.nn.bias_add
          # So we reimplemted them to allow make the model work with tensorRT.
          # See https://github.com/tensorlayer/openpose-plus/issues/75 for more details.
          df = {'channels_first': 'NCHW', 'channels_last': 'NHWC'}
          return _bias_add(_bias_scale(x, a, df[data_format]), b, df[data_format])
docs: Data Format aware version of tf.nn.batch_normalization.