计算Caffe CNN架构中的乘加运算(MAC)的数量

raf*_*lha 10 flops deep-learning caffe conv-neural-network

最近我一直在对一些CNN进行基准测试,包括时间,乘加操作数(MAC),参数数量和模型大小.我已经看到了一些类似的SO问题(这里这里),在后者中,他们建议使用Netscope CNN Analyzer.这个工具允许我通过输入我的Caffe网络定义来计算我需要的大部分东西.

然而,我在论文和互联网上看到的一些架构的乘加操作的数量与Netscope输出的不匹配,而其他架构匹配.我总是将FLOP或MAC与netscope中的MACC列进行比较,但是在某些时候我忘记了一个~10倍的因素(查看下表以获取更多细节).

Architecture  ----  MAC (paper/internet) ---- macc column in netscope
VGG 16                    ~15.5G                       ~157G
GoogLeNet                 ~1.55G                       ~16G
Run Code Online (Sandbox Code Playgroud)

Netscope中引用GoogLeNet macc编号VGG16 macc编号.

是否有人使用该工具可以指出我在阅读Netscope输出时我正在做的错误?

raf*_*lha 7

我发现导致Netscope与我在论文中发现的信息之间存在差异的原因.Nestcope中的大多数预设体系结构使用的批处理大小为10(例如VGGGoogLeNet就是这种情况),因此x10因子乘以多添加操作的数量.