I started to use Caffe few days ago and as you can understand I'm still a beginner.
I've also read many papers, in particular the ones that specify the results with AlexNet, Network In Network, GoogleNet, VGG etc.
I learned that starting from the very first models of AlexNet, which could be 240MB more or less, thanks to Network In Network style (mlp layer) and subsequently with the Inception layer of the GoogleNet, the size of a .caffemodel file has been dramatically reduce (30 MB with NIN and 50 MB with GoogleNet) still having good test performance or even better.
If I'm correct the size of a Caffe model in practice is the sum of various weights of each layer in the net. Of course the number of weights of each layer depends by its type, parameters, and output.
So I still can't properly understand how NIN and GoogleNet can have smaller models than AlexNet for example, knowing that both NIN and GoogleNet have lots more layer than AlexNet.
Is it just beacuse the first two don't have the bigger FC layers that AlexNet have, or maybe is all thanks to the appropriate use of other layers (for example 1x1 conv layers, pooling layers, concat layer, etc.)?
Can someone please explain
The purpose of reducing the size of the .caffemodel file is because in a near future I will hope to use Caffe with an Android app, and of course having a small file will be better with embedded devices with limited memory/resources and maybe it be loaded a little faster.
So if I can understand how to reduce a model (of course without lowering the performance too much) I can build my net and train it with my dataset.
Otherwise finetune a net that produce a small model could be another option to procede. I wanted to test both option to see the results with each one.
Thanks.