I'm considering using ReLU or convolutional deep learning network to classify black and white 8.5"x11" images (with some fine details). Most examples of DNN I saw tested on the MNIST images which are 28x28 pixels. I figured I could probably reduce the images to 320x414 pixels and still be recognizable for my classification needs; further reduction may be risky as even human being may have hard time telling the details. But even at this resolution, there will be 132480 pixels and so the network input would be a vector of 32-bit floats of that many element. Will ReLU or convolutional network handle such large inputs? What are the method to reduce the input size?
2 Answers
There have been convolution networks for videos of $224 \times 224 \times 10$ (1), so yes its possible.
I would strongly suggest to reduce the image size as much as possible, and at the same time use non-fully connected layers in the beginning, reducing the dimensionality of your optimisation problem.
Another approach that you could try is to use a sliding window as input instead of the whole image. This way you could take the features of the first layers of any pretrained ImageNet network, that would significantly decrease your training time. In case you are using Torch7 you can find them here (2).
In both cases, in order to train such convolutional nets you will need a lot of computational power and a (some) very good GPU(s).
-
$\begingroup$ If such feat is possible with ReLU net? (I have quite some experiences by now with ReLU and I'm doing this for a hackathon project, so I have very little time. Also with the deeplearning.net tutorials, I found that while CNN results in half the error rate, it takes 6 hour for one run whereas ReLU takes about 10-20 minutes for the same MNIST datasets and on the same hardware.) $\endgroup$– teddyCommented Jun 22, 2015 at 15:02
-
1$\begingroup$ As long as ReLUs are used in ImageNet they would totally work here as well, it doesn't have to do with dimensionality but with the model's architecture. $\endgroup$ Commented Jun 22, 2015 at 15:24
-
$\begingroup$ ReLU is a CNN equation. ReLU is a way of gating the output of one layer of a neural net. It provides the non-linearity in the system. $\endgroup$– MicheleCommented Dec 9, 2016 at 19:58
In principle, the only limiting factor to how large input sizes you can handle is the amount of memory on your GPU. Then of course, larger input sizes will take longer time to process.
EfficientNet uses an image size of 600x600 pixels in its largest setting, and Feature Pyramid Networks for Object Detection and Mask R-CNN, which perform object detection and semantic segmentation, respectively, resize the input image so that their scale (shorter edge) is 800 pixels.
There is an interesting trade-off between input size, network depth (the number of layers) and network width (the number of feature maps in a layer), which is the reason why you usually only use moderately large input sizes. The optimal balance between these parameters has been analyzed and exploited in EfficientNet, leading to a series of new convolutional neural networks (CNNs) with image classification performance superior to previous CNNs (see image).