gpt4 book ai didi

machine-learning - 如何计算卷积神经网络的参数个数?

转载 作者:行者123 更新时间:2023-11-30 08:20:12 24 4
gpt4 key购买 nike

我无法给出 AlexNet 的正确参数数量或VGG Net .

例如,计算VGG Net的conv3-256层的参数数量,答案为0.59M = (3*3)*(256*256),即(内核大小)*(联合层中 channel 数的乘积),但是这样,我无法获得 138M 参数。

那么您能否告诉我我的计算哪里出了问题,或者告诉我正确的计算过程?

最佳答案

如果您引用 16 层的 VGG 网络(表 1,D 列),则 138M 指的是该网络的参数总数,即包括所有参数卷积层,还有全连接层。

查看由 3 x conv3-256 层组成的第三个卷积阶段:

  • 第一个有 N=128 个输入平面和 F=256 个输出平面,
  • 另外两个有 N=256 个输入平面和 F=256 个输出平面。

每一层的卷积核都是 3x3。就参数而言,这给出:

  • 第一个参数有 128x3x3x256(权重)+ 256(偏差)= 295,168 个参数,
  • 另外两个参数为 256x3x3x256(权重)+ 256(偏差)= 590,080 个参数。

如上所述,您必须对所有层以及全连接层执行此操作,并将这些值相加以获得最终的 138M 数字。

-

更新:各层之间的分割给出:

conv3-64  x 2       : 38,720
conv3-128 x 2 : 221,440
conv3-256 x 3 : 1,475,328
conv3-512 x 3 : 5,899,776
conv3-512 x 3 : 7,079,424
fc1 : 102,764,544
fc2 : 16,781,312
fc3 : 4,097,000
TOTAL : 138,357,544

特别是对于全连接层(fc):

 fc1 (x): (512x7x7)x4,096 (weights) + 4,096 (biases)
fc2 : 4,096x4,096 (weights) + 4,096 (biases)
fc3 : 4,096x1,000 (weights) + 1,000 (biases)

(x) 参见文章第 3.2 节:全连接层首先转换为卷积层(第一个 FC 层转换为 7 × 7 卷积层,最后两个 FC 层转换为 1 × 1转换层)。

有关fc1的详细信息

正如上面所精确的,在输入全连接层之前的空间分辨率是 7x7 像素。这是因为该 VGG 网络在卷积之前使用空间填充,如论文第 2.1 节所述:

[...] 卷积的空间填充。层输入在卷积后保留空间分辨率,即 3×3 卷积的填充为 1 像素。层。

使用这样的填充,并使用 224x224 像素的输入图像,在具有 512 个特征图的最后一个卷积/池化阶段之后,分辨率沿层依次降低:112x112、56x56、28x28、14x14 和 7x7。

这给出了传递给 fc1 的特征向量,尺寸为:512x7x7。

关于machine-learning - 如何计算卷积神经网络的参数个数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28232235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com