Ho sentito che uno dei problemi principali dell'applicazione stile neurale alle immagini ad alta risoluzione è l'enorme quantità di memoria che utilizzare.
Inoltre, ho appena configurato una rete utilizzando piccolo-cnn
Questo è il mio calcolo per il numero di pesi e il numero di neuroni per strato nel mio esempio:
conv_layer_# height width depth filter_height filter_width neurons_(h*w*d) weights
1 512 512 3 3 3 786432 108
2 256 256 6 3 3 393216 216
3 128 128 12 3 3 196608 432
4 64 64 24 3 3 98304 864
5 32 32 48 3 3 49152 1728
6 16 16 96 3 3 24576 3456
7 8 8 192 3 3 12288 6912
1560576 13716
Se diamo ad ogni valore che deve essere memorizzato 8 byte (formato a virgola mobile di precisione singola), otteniamo 6297168 byte, cioè circa 12 MB. Ma la rete assegna oltre 1 GB di RAM quando lo alleno. A cosa serve tutta la memoria?