Subpixel Upscaling/Reshuffle Layers are frequently used in image enlargement networks, though their applications extend far beyond that. In the development of v1 of my Neural Enlarge application, I spent a year experimenting with various things seeking better and better results. I had an early model that was impressive that implemented subpixel reshuffle, but it was slow on Tensorflow for Python, and for Tensorflow.js, it was unusable. It crashed every time and I could not find a solution. Therefore, I moved to using standard deconvolution layers for upscaling.

In the development of v2, I decided to revisit subpixel upscaling to see if I could improve the algorithm. Lets take a look at how it works.

Read more