如何计算caffe使用的参数?

时间:2017-06-13 17:17:40

标签: python deep-learning caffe

考虑this tutorialthis question。如果我们尝试计算参数巫婆框架使用,我们可以看到图层明智的参数:

for layer_name, param in net.params.iteritems():
    print layer_name + '\t' + str(param[0].data.shape), str(param[1].data.shape)

来自教程:

  

param形状通常具有形式(output_channels,   input_channels,filter_height,filter_width)(用于权重)和   1维形状(output_channels,)(对于偏见)。

输出变为:

conv1   (96, 3, 11, 11) (96,)
conv2   (256, 48, 5, 5) (256,)
conv3   (384, 256, 3, 3) (384,)
conv4   (384, 192, 3, 3) (384,)
conv5   (256, 192, 3, 3) (256,)
fc6 (4096, 9216) (4096,)
fc7 (4096, 4096) (4096,)
fc8 (1000, 4096) (1000,)

并根据计算问题:

sum([prod(v[0].data.shape) for k, v in net.params.items()])

偏见会发生什么?我们不应该将param[1]加起来加总吗? Caffe对偏置参数(0或1或其他)的影响是什么?第五个参数是偏见,不是吗?我理解正确吗?

修改: 如果我将它与这些代码相乘:

for k, v in net.params.items():
    weight_param = weight_param + prod(v[0].data.shape) * prod(v[1].data.shape)

返回庞大的数字: 228224076800 ,是系统使用的那些真实参数吗?

0 个答案:

没有答案