ネットワーク モデルをテストするための FLOP とパラメータ

コンセプト

FLOPS: すべて大文字であることに注意してください。これは浮動小数点演算/秒の略語であり、1 秒あたりの浮動小数点演算の数を意味し、計算速度として理解されます。これはハードウェアのパフォーマンスの尺度です。

FLOP: s は小文字であり、浮動小数点演算の略語 (s は複数の数を表します) であり、浮動小数点オペランドを意味し、計算量として理解されることに注意してください。アルゴリズム/モデルの複雑さを測定するために使用できます。

単位換算

1 MFLOPs(メガ) = 10^6 FLOPs、つまり: 100 万回の浮動小数点演算

1 GFLOPs(ギガ) = 10^9 FLOPs、つまり 10 億回の浮動小数点演算

1 TFLOPs(テラ) = 10^12 FLOP、つまり、1 兆回の浮動小数点演算

参考リンク: https:
//zhuanlan.zhihu.com/p/541165764

コード:

import torch
from Net.MyNet import MyNet as net
from thop import profile
from thop import clever_format


model = net()
input = torch.rand(1,3,352,352)
input = input.cuda()
flops, params = profile(model, inputs=(input,))
flops, params = clever_format([flops, params], '%.3f')

print('模型参数:'params)
print('每一个样本浮点运算量:',flops)

おすすめ

転載: blog.csdn.net/holly_Z_P_F/article/details/132178080