code: def col2im_nd_gpu(col, stride, pad, dims, dilate=1):
      n, c = col.shape[:2]  # (n, c, k_1, ..., k_N, out_1, ..., out_N)
      mid = (len(col.shape) - 2) // 2 + 2
      ksize = col.shape[2:mid]
      outs = col.shape[mid:]
      ndim = len(dims)
      dilate = as_tuple(dilate, ndim)
      assert len(outs) == len(ksize) == len(stride) == len(pad) == ndim
  
      img_shape = (n, c) + dims  # (n, c, d_1, d_2, ..., d_N)
      img = cuda.cupy.empty(img_shape, dtype=col.dtype)
  
      (
          in_params,
          out_params,
          operation,
          name,
      ) = conv_nd_kernel.Col2imNDKernel.generate(ndim)
  
      cuda.elementwise(in_params, out_params, operation, name)(
          col.reduced_view(),
          *(dims + outs + ksize + stride + pad + dilate + (img,)),
      )
  
      return img
  
file_path: chainer/chainer/utils/conv_nd.py
imports: import itertools
  import numpy
  import six
  from chainer.backends import cuda
  from chainer.utils.conv import get_conv_outsize
  from chainer.utils import conv_nd_kernel
label_desc: Use image node_id 6 for calling a global function with example usage: col2im_nd_gpu(col, stride, pad, dims, dilate) and returns: img