目录
1. 定义
在评价深度学习模型的大小、计算量、推理时间,经常使用的参数有:parameters, FLOPs,FPS, MACs, MAdds。除此以外,我们还经常见到MAC, FLOPS, GFLOPS, TFLOPS等,其中,后三个参数其实并非用来评价模型的计算量,而是用来评价计算机硬件的计算能力。下面分别介绍一下以上几个参数:
Params:
参数量是指模型训练中需要训练的参数总数。用来衡量模型的大小(计算空间复杂度)。
FLOPs(Floating-point Operations):
浮点运算次数,理解为计算量(计算时间复杂度),可以用来衡量算法的复杂度,常用做神经网络模型速度的间接衡量标准(虽然最近已经有文章证明靠FLOPs间接标准评价模型的速度是不靠谱的,因为模型的计算速度还跟内存的吞吐等因素相关,但此标准依然广泛用作模型速度的参考评价标准)。一个乘法或一个加法都是一个FLOPs。
FPS(Frames Per Second):每秒传输帧数,网络每秒可以处理(检测)多少帧(多少张图片),即每秒内可以处理的图片数量或者处理一张图片所需时间来评估检测速度,时间越短,速度越快。FPS简单来理解就是图像的刷新频率,假设目标网络处理1帧要0.02s,此时FPS就是1/0.02=50。
MACs, MAdds(Multiply–Accumulate Operations) :
乘加累积操作数,常常与FLOPs概念混淆,实际上1MACs包含一个乘法操作与一个加法操作,通常MACs与FLOPs存在一个2倍的关系。MACs和MAdds相同。
MAC(memory access cost):
内存使用量,用来评价模型在运行时的内存占用情况。