I’m new to machine learning, and I’d like to do image segmentation on small matrix (1x32x32 patterns). Unfortunately it seems that most networks (Unet, ResNet, etc) are designed to handle large pictures (3x256x256 and more) and I have no idea how to scale them down to my size and if that’s even a good idea.
What would be the simplest network to start with for such small patterns ? Basically I’m trying to discriminate noise from feature in those patterns, say which are noise pixels and which are feature pixels (so 1x32x32 as input, 1x32x32 as output). I can randomly generate as many noise+feature patterns and masks as needed for the training. I’m using the C++ version of PyTorch, libtorch.
You could try a UNet-like architecture without the downscaling, but with a similar arrangement of skip connections (i.e. have one from the first to the last, one from second to one-but last). You probably don’t need very many layers…
Thanks, so basically, this architecture could work ? -> https://i.imgur.com/mzcJTP4.png
I’ve made this mockup by tweaking the original UNet pdf figure to fit my case. I wasn’t sure about the number of channels to start with (right after the very first layer), the original paper was using 64, I set it arbitrarily to 32. Any comment on that ?
As for the resolution, my original 32x32 resolution is not critical, it just carries some extra subtilities. In my case 16x16 is the lowest resolution that carries the information (the ability to discriminate between noise and signal). However I can still benefits from the fine details of the 32x32, so I hope my proposed UNet can still benefit from it, even if one level of downsampling occurs ?