如何计算GoogLe Net的参数数量?

时间:2015-06-01 23:44:17

标签: convolution deep-learning

我非常了解AlexNet和VGG。我可以使用各自论文中提交的内容验证每个层中使用的参数数量。

然而,当我尝试在GoogleNet论文上做同样的事情时,即使经过多次迭代,我也无法验证他们在'表1和#中的数字?#34;更深入地使用COnvolution" 39;他们的论文。

例如,第一层是旧的普通卷积层,内核大小(7x7),地图输入数3,地图输出数为64.因此根据这一事实,所需参数的数量为(3) * 49 * 64)+ 64(偏差)约9.5k,但他们说他们使用2.7k。我也为其他图层做了数学计算,而且我总是比他们报告的数字百分之几。有什么想法吗?

由于

4 个答案:

答案 0 :(得分:5)

我认为第一行(2.7k)是错误的,但表格的其余部分是正确的。

这是我的计算: http://i.stack.imgur.com/4bDo9.jpg

my computation

注意检查哪个输入连接到哪个层, 例如层“inception_3a / 5x5_reduce”:

 input = "pool2/3x3_s2" with 192 channels
 dims_kernel = C*S*S =192x1x1
 num_kernel = 16 

因此该层的参数大小= 16 * 192 * 1 * 1 = 3072

答案 1 :(得分:1)

看起来他们将数字除以1024 ^ n,以转换为表1中参数数量的K / M标签。这感觉不对。我们不是在这里讨论实际存储数量(如"字节"),而是直接数量的参数。它们应该刚刚除以1000 ^ n。

答案 2 :(得分:1)

可能是7 * 7转换层实际上是7 * 1转换层和1 * 7转换层的组合,那么参数的数量可以是:((7 + 7)* 64 * 3 + 64 * 2) / 2014 = 2.75k,接近2.7k(或者你可以省略128个偏差)。

正如我们所知,Google在纸张中进行空间分解时引入了非对称卷积"空间分解为非对称卷积"

答案 3 :(得分:0)

(1x7 + 7x1)x3x64 =2688≈2.7k,这是我的看法,我是一名新生