在Alex Krizhevsky等人中。利用深层卷积神经网络对图像网络进行分类,它们会枚举每层神经元的数量(请参见下图)。
网络的输入为150,528维,网络其余层的神经元数量为253,440–186,624–64,896–64,896–43,264– 4096–4096–1000。
3D视图
第一层之后所有层的神经元数量是清楚的。一种简单的计算神经元的方法是简单地乘以该层的三个维度(planes X width X height
):
- 第2层:
27x27x128 * 2 = 186,624
- 第3层:
13x13x192 * 2 = 64,896
- 等等
但是,看一下第一层:
- 第1层:
55x55x48 * 2 = 290400
请注意,这与论文中所指定的不 253,440
一样!
计算输出大小
计算卷积输出张量的另一种方法是:
如果输入图像是3D张量
nInputPlane x height x width
,输出图像尺寸将是nOutputPlane x owidth x oheight
,其中
owidth = (width - kW) / dW + 1
oheight = (height - kH) / dH + 1
。
(来自Torch SpatialConvolution文档)
输入图像为:
nInputPlane = 3
height = 224
width = 224
卷积层是:
nOutputPlane = 96
kW = 11
kH = 11
dW = 4
dW = 4
(例如,内核大小11
,步幅4
)
插入这些数字,我们得到:
owidth = (224 - 11) / 4 + 1 = 54
oheight = (224 - 11) / 4 + 1 = 54
因此,我们55x55
与纸张匹配所需的尺寸还不足。它们可能是填充的(但是cuda-convnet2
模型将填充明确设置为0)
如果我们采用54
-size维数,则会得到96x54x54 = 279,936
神经元-仍然太多。
所以我的问题是这样的:
他们如何为第一卷积层获得253,440个神经元?我想念什么?