搭建一个论坛网站,平面设计培训课程培训,买东西最便宜的软件,如何提交网站连接到百度模型的参数量、计算量、延时等的关系 基本概念相互关系代码计算 基本概念
1.参数量#xff1a;Params 2.计算量#xff1a;FLOPs#xff0c;Floating Point Operations#xff0c;浮点运算次数#xff0c;用来衡量模型计算复杂度。 3.延时#xff1a;Latency
4.内存访问… 模型的参数量、计算量、延时等的关系 基本概念相互关系代码计算 基本概念
1.参数量Params 2.计算量FLOPsFloating Point Operations浮点运算次数用来衡量模型计算复杂度。 3.延时Latency
4.内存访问成本 MACmemory access cost存储模型所需的存储空间。 例如某个模型需要256000个浮点参数定义转化为bit 乘以32得8192000bit再除8转化为Byte1024KB也就是1M那么这个模型大小约为1M。
5.乘加运算次数MACsmultiply and accumulate operations通常MACs2FLOPs
6.每秒浮点运算次数FLOPSFloating Point Operations Per Second是一个衡量硬件速度的指标。
7.每秒万亿次操作TOPSTera Operations Per Second1TOPS代表处理器每秒钟可进行一万亿次10^12操作是处理器运算能力单位。
注意区分FLOPs和FLOPS。
相互关系
1.相同 FLOPs 的两个模型它们的延时可能会差很多。因为 FLOPs 只考虑模型总的计算量而不考虑内存访问成本 (memory access cost, MAC) 和并行度 (degree of parallelism)。
2.在相同的 FLOPs 下MAC 大的模型将具有更大的延时。
3.计算量有时候可以忽略但是MAC却不能忽略。比如Add 或 Concat 的计算量可以忽略不计。
4.对于并行度而言在相同的 FLOPs 下具有高并行度的模型可能比另一个具有低并行度的模型快得多。
5.更高的 FLOPS可能 Params 会降低比如当模型使用共享参数时。
代码计算
参数量Params
params sum(p.numel() for p in model.parameters())
print(fparams: {params/(1000 * 1000):.4f} M)计算量FLOPs
from thop import profile
flops, _ profile(model, inputs(image_tensor))
print(GFLOPs:, flops/(1000*1000*1000))乘加运算次数MACs
from ptflops import get_model_complexity_info
macs, params get_model_complexity_info(image_model, (3,224,224), as_stringsTrue, print_per_layer_statTrue)打印模型结构
from torchsummary import summary
summary(image_model, input_size(3, 224, 224))