FLOPS & FLOPs & MACs
记录一下:
FLOPS:
FLOPS (Floating Point Operations Per Second):每秒浮点运算次数,是一个衡量硬件速度的指标。
FLOPs:
FLOPs(Floating Point Operations):浮点运算次数,用来衡量模型计算复杂度,常用来做神经网络模型速度的间接衡量标准。FLOPS与FLOPs常常被人们混淆使用。
MACs:
MACs (Multiply–Accumulate Operations): 乘加累积操作数,常常被人们与FLOPs概念混淆实际上1 MACs 包含一个乘法操作与一个加法操作,大约包含2 FLOPs。通常 MACs 与 FLOPs 存在一个2倍的关系。
Tools:
THOP:https://github.com/Lyken17/pytorch-OpCounter
示例如下:
import torch
import thop
import torchvision
m = torch.nn.Conv2d(128, 128, 1)
x = torch.randn(1, 128, 16, 16)
macs = thop.profile(m, inputs=(x,), verbose=True)
fprint(macs)