0
votes

I am trying to create a Neural Network project to determine the quality of color image and return whether or not it passes the quality check. This quality check will be determined and trained among 2000 sample size which containing 50% good photos and 50% bad photos.

Assuming the picture I'm performing checking is 1280x1280 pixels with RGB no Alpha Channel. I am trying to create following Neural Network

Input Layer ==> 1280 * 1280 * 3 = 4915200 Neurons

2 x Hidden Layer ==> Layer 1 = 1638400 and Layer 2 = 409600 Neurons

Output Layer ==> 1 Neuron

The problem I am having is that in a simple XOR training, we can easily do that with 2 input, 1 hidden layer consisting 2 neurons and 1 output neurons. However, when it become real world application, memory become a huge problem. The amount of memory required exceed my 128GB memory machine.

I don't know how am I supposed to approach this project so that it will become memory efficient? (At least within 128GB)

Looking forward to open discussion on what approach I should take to make it work!

Thanks

1

1 Answers

0
votes

You should use convolutional neural networks. I'd suggest just copying a neural network from an image recognition project, and retraining it on your dataset. An efficient convolutional NN implementation shouldn't use that much memory, although it might take a long time to train.

You can also use lower resolution images, which is what is typically done in machine vision. Scale all the images down to something like 256x256 pixels.