CS231n:VGGnet的总内存

时间:2018-03-22 07:58:04

标签: memory machine-learning neural-network deep-learning conv-neural-network

我正在阅读这篇关于卷积神经网络的CS231n教程。他们举了一个关于VGGNet的例子:

http://cs231n.github.io/convolutional-networks/

  

VGGNet详细介绍。让我们更详细地分析VGGNet   研究。整个VGGNet由执行3x3的CONV层组成   带有步幅1和垫1的卷积,以及执行的POOL层的卷积   2x2 max pooling with stride 2(并且没有填充)。我们可以写出来   处理和保持的每个步骤的表示的大小   跟踪表示大小和权重总数:

然后他们详细计算网络结构: enter image description here

但问题是,对于总内存,教程给出了24M的结果,但是当我计算它时,我只有大约15M!我只是添加了所有的回忆:

>>> 224*224*(3+64*2)+112*112*(64+128*2)+56*56*(128+256*3)+28*28*(256+512*3)+14*14*(512*4)+7*7*512+4096+4096+1000
15237608

请帮帮我。

1 个答案:

答案 0 :(得分:0)

好的抓住!你的计算是正确的,VGG表示的总内存确实是

15.2M * 4 bytes ~= 61Mb

事实上,这个错误很久以前就已经reported了,但不幸的是CS231n的工作人员并没有花太多时间在网站维护上......

但是,请注意,如果您在任何框架(Caffe,Tensorflow等)中编码VGG网络,总模型大小将包括参数,这部分要大得多,正如作者在他们的计算中所示(这似乎是正确的) )。