code: def schedule_batch_norm(outs):
      """Schedule for batch_norm
  
      Parameters
      ----------
      outs: Array of Tensor
            The computation graph description of batch_norm
            in the format of an array of tensors.
  
      Returns
      -------
      sch: Schedule
          The computation schedule for the op.
      """
      s = te.create_schedule([x.op for x in outs])
      # only parallelize outer dimensions up to axis
      output_op = outs[0].op
      axis = output_op.axis
      outer_axes = [output_op.axis[i] for i in range(0, len(axis) - 1)]
      fused_outer_axes = s[output_op].fuse(*outer_axes)
      s[output_op].parallel(fused_outer_axes)
      # when scale or center is enabled
      if "divide" not in output_op.name:
          div = output_op.input_tensors[0]
          substract = s[div].op.input_tensors[0]
          s[div].compute_inline()
          s[substract].compute_inline()
      return s
  
imports: from tvm import te
  from ..utils import traverse_inline
  from .injective import schedule_injective_from_existing
label_desc: Use image node_id 3 for calling a global function with example usage: schedule_batch_norm(outs) and returns: s