AlexNet的参数个数如何计算?

问题描述 投票:0回答:4

我还没有找到AlexNet的参数(权重+偏差)计算,所以我尝试计算它,但我不确定它是否正确:

卷积1:(11*11)*3*96 + 96 = 34944

转换2:(5*5)*96*256 + 256 = 614656

卷积3:(3*3)*256*384 + 384 = 885120

卷积4:(3*3)*384*384 + 384 = 1327488

卷积5:(3*3)*384*256 + 256 = 884992

fc1:(6*6)*256*4096 + 4096 = 37752832

fc2:4096*4096 + 4096 = 16781312

fc3:4096*1000 + 1000 = 4097000

这导致参数总数为 62378344 个。这个计算对吗?

computer-vision conv-neural-network
4个回答
10
投票

你的计算是正确的。我们在撰写这篇博文时独立得出了完全相同的数字。我还添加了帖子中的决赛桌

enter image description here


4
投票

本演示文稿中的幻灯片 8 指出它有 60M 个参数,所以我认为您至少在大概范围内。 http://vision.stanford.edu/teaching/cs231b_spring1415/slides/alexnet_tugce_kyunghee.pdf


1
投票

根据他们论文中的图表,某些层使用分组。因此,并非一层的所有功能都与下一层进行通信。这意味着例如对于 conv2,您应该只有 (5*5)*48*256 + 256 = 307,456 个特征。

我不确定是否所有较新的实现都包含分组。这是他们用来让网络在两个 GPU 上并行训练的优化,但现代 GPU 拥有更多的训练资源,并且无需分组即可轻松适应网络。


0
投票

在原始论文中,它说“第二个卷积层将第一个卷积层的(响应归一化和池化)输出作为输入,并使用 256 个大小为 5 * 5 * 48 的内核对其进行过滤。第三个、第四个和第五个卷积层相互连接,没有任何中间池化或归一化层。第三个卷积层有 384 个大小为 3 * 3 * 256 的内核,连接到第二个卷积层的(归一化、池化)输出。 384 个大小为 3 * 3 * 192 的内核,第五卷积层有 256 个大小为 3 * 3 * 192 的内核。全连接层每个有 4096 个神经元。”

因此,Conv2、Conv4、Conv5的计算应该是:

转换2:(5 * 5 * 48)* 256 + 256

卷积4:(3 * 3 * 192)* 384 + 384

卷积4:(3 * 3 * 192)* 384 + 384

© www.soinside.com 2019 - 2024. All rights reserved.