concepto
FLOPS: Tenga en cuenta todas las letras mayúsculas, es la abreviatura de operaciones de punto flotante por segundo, que significa el número de operaciones de punto flotante por segundo, entendida como velocidad de cálculo. Es una medida del rendimiento del hardware.
FLOP: tenga en cuenta que s está en minúscula, que es la abreviatura de operaciones de punto flotante (s representa un número plural), que significa operandos de punto flotante y se entiende como la cantidad de cálculo. Se puede utilizar para medir la complejidad del algoritmo/modelo.
Conversión de unidades
1 MFLOP (mega) = 10 ^ 6 FLOP, es decir: 1 millón de operaciones de punto flotante
1 GFLOP (giga) = 10 ^ 9 FLOP, es decir: mil millones de operaciones de punto flotante
1 TFLOP (tera) = 10 ^ 12 FLOP, es decir: 1 billón de operaciones de punto flotante
Enlace de referencia:
https://zhuanlan.zhihu.com/p/541165764
Código:
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)