code: def unpack_NCHWc_to_nchw(packed_out, out_dtype):
      """Unpack conv2d_NCHWc output from layout NCHWc to NCHW
  
      Parameters
      ----------
      packed_out : tvm.te.Tensor
          The output tensor of conv2d_NCHWc.
  
      out_dtype : str
          The output dtype.
  
      Returns
      -------
      unpacked_out : tvm.te.Tensor
          The unpacked output tensor in NCHW layout.
      """
      n, oc_chunk, oh, ow, oc_bn = get_const_tuple(packed_out.shape)
  
      idxmod = tvm.tir.indexmod
      idxdiv = tvm.tir.indexdiv
  
      oshape = (n, oc_chunk * oc_bn, oh, ow)
      unpacked_out = te.compute(
          oshape,
          lambda n, c, h, w: packed_out[
              n, idxdiv(c, oc_bn), h, w, idxmod(c, oc_bn)
          ].astype(out_dtype),
          name="output_unpack",
          tag=tag.INJECTIVE + ",unpack_nchwc",
      )
      return unpacked_out
  
imports: from __future__ import absolute_import
  import re
  from collections import namedtuple
  from typing import Optional, Sequence, Union
  import numpy
  import tvm
  from tvm import auto_scheduler, te
  from ..utils import get_const_int, get_const_tuple, simplify, tag
  from .pad import pad
  from .utils import get_pad_tuple, get_pad_tuple_generic
  from .winograd_util import winograd_transform_matrices
label_desc: Use image node_id 18 for calling a global function with example usage: unpack_NCHWc_to_nchw(packed_out, out_dtype) and returns: unpacked_out