code: def schedule_bitserial_conv2d_nhwc(cfg, outs):
      """Arm cpu schedule for bitserial conv2d"""
      s = te.create_schedule([x.op for x in outs])
  
      def _callback(op):
          if "spatial_bitserial_conv_nhwc" in op.tag:
              output = op.output(0)
              conv_out = op.input_tensors[0]
              kernel_vec = conv_out.op.input_tensors[0]
              data_vec = conv_out.op.input_tensors[1]
              data_q = data_vec.op.input_tensors[0]
              data = data_q.op.input_tensors[0]
              data_pad = None
              if (
                  isinstance(data_q.op, te.tensor.ComputeOp)
                  and "pad" in data_q.op.tag
              ):
                  data_pad = data_q
                  data_q = data
                  data = data.op.input_tensors[0]
              unipolar = "unipolar" in conv_out.op.tag
              _schedule_spatial_conv2d_nhwc(
                  cfg,
                  s,
                  data_pad,
                  data_vec,
                  kernel_vec,
                  conv_out,
                  output,
                  outs[0],
                  unipolar,
              )
  
      traverse_inline(s, outs[0].op, _callback)
      return s
  
file_path: tvm/python/tvm/topi/arm_cpu/bitserial_conv2d.py
imports: from __future__ import absolute_import
  import tvm
  from tvm import te
  from tvm import autotvm
  from tvm import relay
  from ..nn.pad import pad
  from ..nn.bitserial_conv2d import bitserial_conv2d_legalize
  from ..nn.bitserial_util import bitpack, binary_op_multiplier
  from ..nn.utils import get_pad_tuple
  from ..utils import get_const_int, get_const_tuple, traverse_inline
label_desc: Use image node_id 5 for calling a global function with example usage: schedule_bitserial_conv2d_nhwc(cfg, outs) and returns: s