我正在阅读CS231n教程,关于卷积神经网络。他们给出了一个关于VGGNet的示例:
http://cs231n.github.io/convolutional-networks/
VGGNet的详细信息。作为一个案例,让我们更详细地分解VGGNet 学习整个VGGNet由执行3x3的CONV层组成 步幅1和垫1的回旋,以及执行 2个最大池,步幅2(无填充)。我们可以写出 处理的每个步骤的表示大小,并保持 表示大小和权重总数的跟踪:
然后,他们对网络结构进行了详细计算:
但问题是,对于总内存,教程给出了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
请帮帮我。
接得好!您的计算是正确的,VGG表示的总内存确实是
15.2M * 4 bytes ~= 61Mb
事实上,这个错误 reported 很久以前,但不幸的是CS231n的员工并没有在网站维护上花费太多时间。。。
然而,请注意,如果您在任何框架(Caffe、Tensorflow等)中编写VGG网络,那么总模型大小将包括参数,而这一部分要大得多,正如作者在计算中所示(这似乎是正确的)。