code: def batch_norm(
      x: Union[(None, mx.ndarray.NDArray)],
      mean: Union[(None, mx.ndarray.NDArray)],
      variance: Union[(None, mx.ndarray.NDArray)],
      /,
      *,
      scale: Optional[Union[(None, mx.ndarray.NDArray)]] = None,
      offset: Optional[Union[(None, mx.ndarray.NDArray)]] = None,
      training: bool = False,
      eps: float = 1e-05,
      momentum: float = 0.1,
      out: Optional[None] = None,
  ) -> Tuple[
      (
          Union[(None, mx.ndarray.NDArray)],
          Union[(None, mx.ndarray.NDArray)],
          Union[(None, mx.ndarray.NDArray)],
      )
  ]:
      raise IvyNotImplementedException()
  
imports: from typing import Union, Optional, Tuple
  import mxnet
  from ivy.utils.exceptions import IvyNotImplementedException
label_desc: Use image node_id 2 for calling a global function with example usage: batch_norm() without return types