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

Counting the number of multiply-add operations (MAC) in Caffe CNN's architecture

最近我一直在对一些 CNN 进行基准测试,包括时间、乘加运算数量 (MAC)、参数数量和模型大小。我见过一些类似的 SO 问题 (here and ) and in the latter, they suggest using Netscope CNN Analyzer。这个工具让我可以通过输入我的 Caffe 网络定义来计算我需要的大部分东西。

但是,我在论文和互联网上看到的某些体系结构的乘加运算次数与 Netscope 的输出不匹配,而其他体系结构是匹配的。我总是将 FLOPs 或 MAC 与 netscope 中的 MACC 列进行比较,但有一个 ~10x 因素我在某些时候忘记了(查看下面的 table 了解更多细节).

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

Netscope 中关于 GoogLeNet macc number and VGG16 macc number 的参考。

是否有人使用该工具可以指出我在读取 Netscope 输出时犯了什么错误?

我找到了导致 Netscope 与我在论文中找到的信息之间存在差异的原因。 Nestcope 中的大多数预设架构使用的批量大小为 10(例如,VGG and GoogLeNet 就是这种情况),因此乘以 mult-add 操作数的 x10 因子。