【评价指标】FLOPs、MACs(Multiply–Accumulate Operations)、Params

FLOPs

FLOPs(Floating point operations)浮点运算数量,就是计算量,在神经网络领域,通常用来衡量神经网络的计算复杂度,即完成一次前向传播所需要的浮点运算次数。

在神经网络中,每个操作(如矩阵乘法、卷积等)都具有一定的FLOPs值。为了计算模型的总FLOPs,需要对网络中每个操作的FLOPs值进行统计并求和。可以通过工具或代码库自动计算网络的FLOPs值,但需要注意,这些值通常是以理论计算为基础,实际的运行效率可能会受到硬件设备和软件实现的影响。

FLOPs值通常被用作指导模型优化和压缩的重要参考指标,因为在保持准确率不变的情况下,降低模型的FLOPs可以提高模型的运行速度和节省计算资源。

注意区分:FLOPS(Floating Point Operations Per Second)每秒浮点运算次数,是一个衡量硬件速度的指标。

MACs(Multiply–Accumulate Operations)

乘加累积操作数,常常被人们与FLOPs概念混淆实际上1MACs包含一个乘法操作与一个加法操作,大约包含2FLOPs。通常MACs与FLOPs存在一个2倍的关系。

想看细节可以参考这篇

Params

参数量。例如每个滤波器55=25个unit参数和一个bias参数,一共6个滤波器,共(55+1)*6=156个参数。


细节可以看这个,CNN中各层计算量MACC和FLOPs的计算方式

或者看这篇,How fast is my model? 

猜你喜欢

转载自blog.csdn.net/m0_70813473/article/details/131418843