代码之家  ›  专栏  ›  技术社区  ›  Dang Manh Truong

CS231n:VGGnet的总内存

  •  0
  • Dang Manh Truong  · 技术社区  · 7 年前

    我正在阅读CS231n教程,关于卷积神经网络。他们给出了一个关于VGGNet的示例:

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

    VGGNet的详细信息。作为一个案例,让我们更详细地分解VGGNet 学习整个VGGNet由执行3x3的CONV层组成 步幅1和垫1的回旋,以及执行 2个最大池,步幅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 回复  |  直到 7 年前
        1
  •  2
  •   Maxim    7 年前

    接得好!您的计算是正确的,VGG表示的总内存确实是

    15.2M * 4 bytes ~= 61Mb
    

    事实上,这个错误 reported 很久以前,但不幸的是CS231n的员工并没有在网站维护上花费太多时间。。。

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