code: def _convert_batchnorm(
      inexpr, keras_layer, etab, data_layout, input_shape=None
  ):
      if input_shape is None:
          input_shape = keras_layer.input_shape
      if data_layout == "NCHW" or len(input_shape) < 4:
          axis = 1
      else:
          axis = 3
  
      params = {
          "scale": False,
          "center": False,
          "epsilon": keras_layer.epsilon,
          "axis": axis,
      }
      idx = 0
      if keras_layer.scale:
          params["scale"] = True
          gamma = keras_layer.get_weights()[idx]
          params["gamma"] = etab.new_const(gamma)
          idx += 1
      if keras_layer.center:
          params["center"] = True
          beta = keras_layer.get_weights()[idx]
          params["beta"] = etab.new_const(beta)
          idx += 1
      moving_mean = keras_layer.get_weights()[idx]
      moving_var = keras_layer.get_weights()[idx + 1]
      params["moving_mean"] = etab.new_const(moving_mean)
      params["moving_var"] = etab.new_const(moving_var)
      # in case beta or gamma is not defined
      params["beta"] = (
          etab.new_const(np.zeros(moving_mean.shape))
          if "beta" not in params
          else params["beta"]
      )
      params["gamma"] = (
          etab.new_const(np.ones(moving_mean.shape))
          if "gamma" not in params
          else params["gamma"]
      )
      result, moving_mean, moving_var = _op.nn.batch_norm(
          inexpr, **params
      )
      return result
  
imports: import dis
  import sys
  import numpy
  import tvm
  from tvm.ir import IRModule, TensorType, TupleType
  from ..None import analysis
  from ..None import expr
  from ..None import function
  from ..None import op
  from ...None import nd
  from .common import ExprTable, new_var
label_desc: Use image node_id 23 for calling a global function with example usage: _convert_batchnorm(inexpr, keras_layer, etab, data_layout, input_shape) and returns: result