CNN 模型计算力 FLOPs
在撰写论文时,当进行模型比较时,常常会比较模型准确度,但模型计算力消耗、参数个数也是重要的指标,特别是模型落地时。
FLOPs
FLOPS 与 FLOPs 不同:
- FLOPS: FLoating point Operations Per Second,表示每秒浮点运算次数,衡量硬件(如 GPU )的计算性能,可理解为计算速度;
- FLOPs: FLoating point Operations,表示浮点运算数,衡量模型(如深度学习模型 CNN )的复杂程度,可理解为计算量。
计算 FLOPs
计算 FLOPs 常常指深度学习模型前向传播是的计算量,而 CNN 中计算量主要集中在卷积层,除此之外,也有池化层、批归一化层、激活层,上采样层等。下面主要介绍卷积层计算 FLOPs 的方法。
假设卷积核的大小是 $k \times k$,通道数是 $c$,输出特征图的大小是 $H \times W$,通道数是 $C$,则计算力消耗是
$k \times k \times c \times H \times W \times C$
开源库
一种方便的开源库是 ptflops
1 | pip install ptflops |
1 | import torchvision.models as models |
参考链接
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 J. Xu!
评论