I am playing around using convolution neural networks for image super-resolution, i.e. up-scaling of images. In literature I often come across the concept of sub-pixel convolution as one of the layers in CNNs for super-resolution. If you want to upscale by a factor r, the idea is to merge r^2 feature maps by interleaving them into a single image. Below is an example of 4 feature maps of 3x3 being merged into a single 6x6 image (i.e. scaling factor of 2). This can be extended to bigger scaling factors.
I have been looking at available neural network layers in MMA 12.1, but I have not figured out how to implement a sub-pixel convolution with the available layers. Maybe the use of a deconvolution layer with a clever choice of a fixed kernel and strides might do the trick but I can't see how yet.
Did anybody in the MMA community already try to implement a sub-pixel convolution efficiently, or maybe point me in some direction how to implement it using the available NN layers.