福永外贸网站建设,新冠走了几百万老年人,工商企业管理系统,教育加盟培训网站建设文章目录一. 含义二. 使用thop库计算FLOPs和Params三. 注意四. 相关链接一. 含义
FLOPs#xff08;计算量#xff09;#xff1a;注意s小写#xff0c;是floating point operations的缩写#xff08;这里的小s则表示复数#xff09;#xff0c;表示浮点运算数#xff…
文章目录一. 含义二. 使用thop库计算FLOPs和Params三. 注意四. 相关链接一. 含义
FLOPs计算量注意s小写是floating point operations的缩写这里的小s则表示复数表示浮点运算数理解为计算量。可以用来衡量算法/模型的复杂度。FLOPS计算速度注意全大写是floating point operations per second的缩写这里的大S表示second秒表示每秒浮点运算次数理解为计算速度。是一个衡量硬件性能的指标。Params参数量没有固定的名称大小写均可表示模型的参数量也是用来衡量算法/模型的复杂度。通常我们在论文中见到的是这样# Params那个井号是表示 number of 的意思因此 # Params 的意思就是参数的数量。
二. 使用thop库计算FLOPs和Params
安装
pip install thop使用 使用thop库来计算vgg16模型的计算量和参数量
import torch
from thop import profile
from archs.ViT_model import get_vit, ViT_Aes
from torchvision.models import resnet50model resnet50()
input1 torch.randn(1, 3, 224, 224)
flops, params profile(model, inputs(input1, ))
print(FLOPs str(flops/1000**3) G)
print(Params str(params/1000**2) M)结果
FLOPs 16.534970368G
Params 25.557032M三. 注意
计算FLOPs时batch_size维度只能为1。输入input的第一维度是批量(batch size)批量的大小不会影响参数量 计算量是batch_size1的倍数profile(net, (inputs,))的 (inputs,)中必须加上逗号否则会报错当网络模型有多个输入时使用profile(net, (inputs1, inputs2, inputs3,))
四. 相关链接
pytorch: 计算网络模型的计算量(FLOPs)和参数量(Params)FLOPs、FLOPS、Params的含义及PyTorch中的计算方法