如果使用16层VGG Net(表1,D列),则138M
表示该网络的参数总数 ,即包括所有卷积层,也包括完全连接的层。
看一下由3 x conv3-256
层组成的第3个卷积阶段:
- 第一个具有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 Net在卷积之前使用了空间填充 ,如本文第2.1节所述:
转换的空间填充层输入是在卷积后保留空间分辨率,即,对于3×3转换,填充为1像素。层。
通过这样的填充,并使用224x224像素的输入图像,分辨率会沿以下各层依次降低:112x112、56x56、28x28、14x14和7x7,位于具有512个特征图的最后一个卷积/合并阶段之后。
这给出了传递给fc1
的特征矢量,尺寸为:512x7x7。
0
我无法提供正确数量的AlexNet或VGG Net参数。
例如,要计算VGG Net的
conv3-256
层的参数数量,答案为0.59M =(3 * 3)*(256 * 256),即(内核大小)*(两者的乘积通道中的通道),但是以这种方式,我无法获得138M
参数。那么,您能告诉我我的计算出了什么问题,或者告诉我正确的计算程序吗?