code: def conv2d_transpose_packed(
      cfg,
      data,
      kernel,
      strides,
      padding,
      out_dtype,
      output_padding=(0, 0),
  ):
      """Packed conv2d_transpose compute"""
      ishape = get_const_tuple(data.shape)
      kshape = get_const_tuple(kernel.shape)
      b, c_i, i_h, i_w, t_b, t_ci = ishape
      c_o, _, k_h, k_w, t_co, t_ci = kshape
      stride_h, stride_w = strides
      opad_h, opad_w = output_padding
      # FIXME(tmoreau89): currently IR pass breaks when output padding != (0,0)
      assert (
          opad_h == 0 and opad_w == 0
      ), "VTA does not support output padding for now"
  
      # derive padding parameters
      fpad_top, fpad_left, fpad_bottom, fpad_right = get_pad_tuple(
          padding, (k_h, k_w)
      )
      bpad_top = k_h - 1 - fpad_top
      bpad_bottom = k_h - 1 - fpad_bottom + opad_h
      bpad_left = k_w - 1 - fpad_left
      bpad_right = k_w - 1 - fpad_right + opad_w
  
      # padding stage
      dilated_input = topi.nn.dilate(
          data, [1, 1, stride_h, stride_w, 1, 1]
      )
      data_pad = topi.nn.pad(
          dilated_input,
          [0, 0, bpad_top, bpad_left, 0, 0],
          [0, 0, bpad_bottom, bpad_right, 0, 0],
      )
  
      # convolution transpose stage
      out_h = (
          (i_h - 1) * stride_h - fpad_top - fpad_bottom + k_h + opad_h
      )
      out_w = (
          (i_w - 1) * stride_w - fpad_left - fpad_right + k_w + opad_w
      )
      oshape = (b, c_o, out_h, out_w, t_b, t_co)
      d_c = te.reduce_axis((0, c_i), name="d_c")
      d_h = te.reduce_axis((0, k_h), name="d_h")
      d_w = te.reduce_axis((0, k_w), name="d_w")
      d_ci = te.reduce_axis((0, t_ci), name="d_ci")
  
      out = te.compute(
          oshape,
          lambda i_n, i_c, i_h, i_w, j_n, j_c: te.sum(
              data_pad(
                  i_n, d_c, i_h + d_h, i_w + d_w, j_n, d_ci
              ).astype(out_dtype)
              * kernel[i_c, d_c, d_h, d_w, j_c, d_ci].astype(out_dtype),
              axis=[d_c, d_h, d_w, d_ci],
          ),
          tag="packed_conv2d_transpose",
          name="res",
      )
  
      cfg.add_flop(
          2
          * np.prod(topi.utils.get_const_tuple(oshape))
          * kshape[2]
          * kshape[3]
          * ishape[1]
          * ishape[-1]
      )
  
      return out
  
file_path: tvm/vta/python/vta/top/vta_conv2d_transpose.py
imports: import numpy
  import tvm
  from tvm import te
  from tvm import autotvm
  from tvm import topi
  from tvm.topi.utils import get_const_tuple
  from tvm.topi.nn.utils import get_pad_tuple
  from ..environment import get_env
label_desc: Use image node_id 1 for calling a global function with example usage: conv2d_transpose_packed(cfg, data, kernel, strides, padding, out_dtype, output_padding) and returns: out