为什么tensorflow的FLOP是Caffe的macc的2倍?

时间:2018-08-23 09:41:16

标签: tensorflow caffe flops

我正在尝试将模型从caffe重写为tensorflow。为了确保没有记错,我数了一下macc和Flops,然后发现了这个有趣的东西:

例如,当输入一个图像112x112x3并将其转换为32 3x3内核,步幅= 1时,Caffe中的macc为2.71M,而在Tensorflow中计算的FLOP为5。42M。

我想知道为什么会发生这种2倍的差异吗?

2 个答案:

答案 0 :(得分:1)

我不是这方面的专家,但是FLOPS意味着每一个浮点运算,而不仅仅是乘法或累加。将执行的FLOPS数量将超过执行MACS的数量。

我也在某处读过 如果MAC用于浮点性能和循环开销 两次测量的内存带宽相同, 那么通常考虑1个浮点乘累加 相当于2个FLOP。一个用于乘法,第二个用于累加器。

答案 1 :(得分:1)

一个MACC包含一个乘法和一个加法。 一乘或一加可以看作是一个FLOP。 因此,一个MACC具有两个FLOPS。