code: def batch_norm_infer(
      data,
      gamma=None,
      beta=None,
      moving_mean=None,
      moving_var=None,
      **kwargs,
  ):
      """Wrapper of batch_norm.
  
      This function automatically creates weights and return
      the first output(normalized result).
  
      Parameters
      ----------
      data : relay.Expr
          The input expression.
  
      gamma : relay.Expr
          The gamma scale factor.
  
      beta : relay.Expr
          The beta offset factor.
  
      moving_mean : relay.Expr
          Running mean of input,
  
      moving_var : relay.Expr
          Running variance of input.
  
      kwargs : dict
          Additional arguments.
  
      Returns
      -------
      result : relay.Expr
          The result.
      """
      name = kwargs.get("name")
      kwargs.pop("name")
      if not gamma:
          gamma = relay.var(name + "_gamma")
      if not beta:
          beta = relay.var(name + "_beta")
      if not moving_mean:
          moving_mean = relay.var(name + "_moving_mean")
      if not moving_var:
          moving_var = relay.var(name + "_moving_var")
      return relay.nn.batch_norm(
          data,
          gamma=gamma,
          beta=beta,
          moving_mean=moving_mean,
          moving_var=moving_var,
          **kwargs,
      )[0]
  
imports: from tvm import relay
label_desc: Use image node_id 1 for calling a global function with example usage: batch_norm_infer(data, gamma, beta, moving_mean, moving_var) and returns: relay