proc col2im[T](input: Tensor[T]; channels, height, width: int; kernel_size: Size2D; padding: Size2D = (0, 0); stride: Size2D = (1, 1)): Tensor[T]
proc im2col[T](input: Tensor[T]; kernel_size: Size2D; padding: Size2D = (0, 0); stride: Size2D = (1, 1); result: var Tensor[T])
proc im2colgemm_conv2d[T](input, kernel, bias: Tensor[T]; padding: Size2D = (0, 0); stride: Size2D = (1, 1)): Tensor[ T]
proc im2colgemm_conv2d_gradient[T](input, kernel: Tensor[T]; padding: Size2D = (0, 0); stride: Size2D = (1, 1); grad_output: Tensor[T]; grad_input, grad_weight: var Tensor[T])