重点参考这个部分:
但是,我认为他的换算方式有误,换算方式应该是:
Parameters
,统计个数之后,换算成M
的含义是million百万
,因此换算应该是 1 M = 1 0 6 1M=10^6 1M=106(在代码中 1 0 6 10^6 106通常写成1e6
)参考链接:数量单位B和M代表多少?FLOPs
,换算成GFLIPs
的方式是 G F L O P s = 1 0 9 F L O P s GFLOPs=10^9 FLOPs GFLOPs=109FLOPs(在代码中 1 0 9 10^9 109通常写成1e9
)参考链接:FLOPS每秒浮点运算次数计算公式import torch
import torchvision
from thop import profile
print('==> Building model..')
model = torchvision.models.alexnet(pretrained=False).cuda() # 如果就把cuda()去掉试试
input = torch.randn(1, 3, 224, 224).cuda() # 如果就把cuda()去掉试试
flops, params = profile(model, (input,))
print('GFLOPs: %.2f B, params: %.2f M' % (flops / 1e9, params / 1e6))
图中的话忘记是在哪里看到的了,感觉很有道理的样子hhh~