模型推理速度与硬件算力
1. 模型大小衡量指标
1.1 参数量
这里的参数量就是指模型的权重,对于 CNN 网络而言,主要就集中在 Conv 和 FC 层。
参数量主要会体现在模型的物理大小(硬盘占用大小),在运行时也会体现在内存(显存)占用上,对运行速度没有直接的影响(间接的影响显然是存在的)。具体来说就是,如果模型硬盘占用很大,显然会影响最终软件的大小,如果模型内存占用很多,显然会影响一块显卡(或其他硬件)能同时加载模型的数量。
参数量可以借助 thop,summary 或者 summaryx 获得。
1.2 计算量
-
FLOPs(Floating Point Operations)浮点计算次数,注意区别,不是 FLOPS,FLOPS(Floating Point Operations Per Second) 是一种衡量硬件计算速度的指标。
比如对于 Conv 操作来说,乘和加各算一次操作,那么如果输入为 ( N , C , H , W ) (N, C, H, W) (N,C,H,W),卷积核为 ( k h , k w , C , C o u t ) (k_h, k_w, C, C_{out}) (kh,kw,C,Cout), 输出尺寸为 ( N , C o u t , H o u t , W o u t ) (N, C_{out}, H_{out}, W_{out}) (N,Cout,Hout,Wout),计算量如下:
F L O P s = N ∗ C o u t ∗ H o u