For many samples of small images, it would be nice to load the data into RAM and perform transfer learning without using images on slower memory (imageDatastore). Unfortunately, if I had 50x50x1 images and had to resize to go with alexnet, I will be forced to use (50x50x1/227x227x3) ~ 1.6% of the number of samples in order to keep everything in RAM.
Does anyone know a fix? A custom layer that resizes would work, that's a lot of work though.
Thanks for your question.
If you need to resize, apply augmentedimagedatastore to your image datastore - it will be much faster than a custom readfcn, because it preserves prefetch under the hood. If you don’t need to resize, augment, or any other need for a custom readfcn, then vanilla imds is simplest.
Another option is to create a custom layer but you're right, it'll take some work.