计算Caffe溶液中神经元的数量和重量

时间:2016-07-07 00:44:21

标签: python neural-network caffe

我有一个Caffe项目,我使用prototxt模型描述和caffemodel调整参数文件(大小约为16 Mb)获得。有没有一种简单的方法可以从静态分析或运行时找出模型中有多少神经元和权重?

我可以看到Netscope中的prototxt文件,但是有24个卷积层和7个汇聚层,所以我真的不知道从哪里开始计数。我也看到了this Google Groups question,但我不确定如何将它应用到我的问题中。

1 个答案:

答案 0 :(得分:2)

是的,您可以从原型文件中计算权重参数,甚至不用查看caffemodel。对于卷积层,您可以查看有多少过滤器以及过滤器大小是多少。例如,如果卷积大小为3x3且滤波器数量为64,则该层的参数数量将为576.对于完全连接的层,权重参数的数量将等于前一层的大小乘以大小当前层,例如如果前一层的输出大小为200且当前层有100个隐藏单位,则为200x100。如果前一层是卷积层,则前一层的大小也取决于输入图像的大小。具有完全连接层的网络采用固定大小的输入,因此可以根据输入大小和其他层参数http://cs231n.github.io/convolutional-networks/计算最后一个卷积层的输出大小。

如果存在偏差参数,则需要添加多个过滤器以及完全连接的层数。池化层没有权重参数,因此可以忽略这些参数。最后,您可以将大小乘以4,即float的大小。