位置: IT常识 - 正文

计算模型的GFLOPs和参数量 & 举例VGG16和DETR(计算模型的层次划分)

编辑:rootadmin
计算模型的GFLOPs和参数量 & 举例VGG16和DETR

推荐整理分享计算模型的GFLOPs和参数量 & 举例VGG16和DETR(计算模型的层次划分),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:计算模型的参数量和计算量,计算模型的作用,计算模型的创建与计算机有关,计算模型的层次划分,计算模型的概念,计算模型的概念,计算模型的概念,计算模型的层次划分,内容如对您有帮助,希望把文章链接给更多的朋友!

近期忙于写论文,分享一下论文中表格数据的计算方法。

目录

一、FLOPS、FLOPs和GFLOPs的概念

二、计算VGG16的GFLOPs和参数量

三、计算DETR的GFLOPs和参数量

四、整理数据表格


一、FLOPS、FLOPs和GFLOPs的概念FLOPS:注意S是大写,是 “每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正因为FLOPS字尾的那个S,代表秒,而不是复数,所以不能省略掉。FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。GFLOPs:一个GFLOPs等于每秒十亿(=10^9)次的浮点运算。二、计算VGG16的GFLOPs和参数量from thop import profileimport torchimport torchvision.models as modelsmodel = models.vgg16()device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")model.to(device)input = torch.zeros((1, 3, 224, 224)).to(device)flops, params = profile(model.to(device), inputs=(input,))print("参数量:", params)print("FLOPS:", flops)计算模型的GFLOPs和参数量 & 举例VGG16和DETR(计算模型的层次划分)

>>>output

参数量: 138357544.0 FLOPS: 15470314496.0

三、计算DETR的GFLOPs和参数量首先,访问网址:GitHub - facebookresearch/detr: End-to-End Object Detection with Transformers然后,下载DETR源码压缩包,调通源码。最后,把下面的代码封装到py文件中,放到DETR源码的根目录即可。import osimport timefrom PIL import Imageimport matplotlib.pyplot as pltimport torchimport torchvision.transforms as Ttorch.set_grad_enabled(False)from models import build_modelimport argparsefrom torch.nn.functional import dropout,linear,softmaxdef get_args_parser(): parser = argparse.ArgumentParser('Set transformer detector', add_help=False) parser.add_argument('--lr', default=1e-4, type=float) parser.add_argument('--lr_backbone', default=1e-5, type=float) parser.add_argument('--batch_size', default=1, type=int) parser.add_argument('--weight_decay', default=1e-4, type=float) # parser.add_argument('--epochs', default=300, type=int) parser.add_argument('--epochs', default=100, type=int) parser.add_argument('--lr_drop', default=200, type=int) parser.add_argument('--clip_max_norm', default=0.1, type=float, help='gradient clipping max norm') # Model parameters parser.add_argument('--frozen_weights', type=str, default=None, help="Path to the pretrained model. If set, only the mask head will be trained") # * Backbone parser.add_argument('--backbone', default='resnet50', type=str, help="Name of the convolutional backbone to use") parser.add_argument('--dilation', action='store_true', help="If true, we replace stride with dilation in the last convolutional block (DC5)") parser.add_argument('--position_embedding', default='sine', type=str, choices=('sine', 'learned'), help="Type of positional embedding to use on top of the image features") # * Transformer parser.add_argument('--enc_layers', default=6, type=int, help="Number of encoding layers in the transformer") parser.add_argument('--dec_layers', default=6, type=int, help="Number of decoding layers in the transformer") parser.add_argument('--dim_feedforward', default=2048, type=int, help="Intermediate size of the feedforward layers in the transformer blocks") parser.add_argument('--hidden_dim', default=256, type=int, help="Size of the embeddings (dimension of the transformer)") parser.add_argument('--dropout', default=0.1, type=float, help="Dropout applied in the transformer") parser.add_argument('--nheads', default=8, type=int, help="Number of attention heads inside the transformer's attentions") parser.add_argument('--num_queries', default=40, type=int, help="Number of query slots") # 论文中对象查询为100 parser.add_argument('--pre_norm', action='store_true') # * Segmentation parser.add_argument('--masks', action='store_true', help="Train segmentation head if the flag is provided") # Loss parser.add_argument('--no_aux_loss', dest='aux_loss', action='store_false', help="Disables auxiliary decoding losses (loss at each layer)") # * Matcher parser.add_argument('--set_cost_class', default=1, type=float, help="Class coefficient in the matching cost") parser.add_argument('--set_cost_bbox', default=5, type=float, help="L1 box coefficient in the matching cost") parser.add_argument('--set_cost_giou', default=2, type=float, help="giou box coefficient in the matching cost") # * Loss coefficients parser.add_argument('--mask_loss_coef', default=1, type=float) parser.add_argument('--dice_loss_coef', default=1, type=float) parser.add_argument('--bbox_loss_coef', default=5, type=float) parser.add_argument('--giou_loss_coef', default=2, type=float) parser.add_argument('--eos_coef', default=0.1, type=float, help="Relative classification weight of the no-object class") # dataset parameters parser.add_argument('--dataset_file', default='coco') parser.add_argument('--coco_path', default='', type=str) parser.add_argument('--coco_panoptic_path', type=str) parser.add_argument('--remove_difficult', action='store_true') parser.add_argument('--output_dir', default='E:\project_yd\paper_sci_one_yd\Transformer\DETR\detr\\runs\\train', help='path where to save, empty for no saving') parser.add_argument('--device', default='cuda', help='device to use for training / testing') parser.add_argument('--seed', default=42, type=int) # ============================================================================= # parser.add_argument('--resume', default='', help='resume from checkpoint') # ============================================================================= # parser.add_argument('--start_epoch', default=0, type=int, metavar='N', help='start epoch') parser.add_argument('--eval', action='store_true') parser.add_argument('--num_workers', default=2, type=int) # distributed training parameters parser.add_argument('--world_size', default=1, type=int, help='number of distributed processes') parser.add_argument('--dist_url', default='env://', help='url used to set up distributed training') return parserif __name__ == '__main__': parser = argparse.ArgumentParser('DETR training and evaluation script', parents=[get_args_parser()]) args = parser.parse_args() # 建立模型 model, criterion, postprocessors = build_model(args) model.to('cuda:0') url = r'detr-r50-dc5-f0fb7ef5.pth' state_dict = torch.load(url) # print(state_dict) # 加载模型参数,以字典的形式表示 model.load_state_dict(state_dict['model']) model.eval() # 把字符串类型转换成字典类型 # ==================================================== # from thop import profile import torchsummary device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") model.to(device) input = torch.zeros((1, 3, 800, 1422)).to(device) flops, params = profile(model.to(device), inputs=(input,)) print("参数量:", params) print("FLOPS:", flops) # ==================================================== #

>>> output

参数量: 36739785.0 FLOPS: 100937364480.0

四、整理数据表格ModelGFLOPsParamsVGG1615.4713.84 MDETR100.9436.74 M

>>> 如有疑问,欢迎评论区一起探讨!

本文链接地址:https://www.jiuchutong.com/zhishi/298853.html 转载请保留说明!

上一篇:【关系抽取】深入浅出讲解实体关系抽取(介绍、常用算法)(关系抽取系统的要求)

下一篇:【魔改YOLOv5-6.x(中)】加入ACON激活函数、CBAM和CA注意力机制、加权双向特征金字塔BiFPN(魔改6.67)

  • 怎么备份qq的聊天记录(怎么备份qq的聊天记录手机)

    怎么备份qq的聊天记录(怎么备份qq的聊天记录手机)

  • 华为nova5pro微信怎样分身(华为nova5pro微信视频不提示)

    华为nova5pro微信怎样分身(华为nova5pro微信视频不提示)

  • 抖音极速版私信在哪里(抖音极速版私信怎么删除)

    抖音极速版私信在哪里(抖音极速版私信怎么删除)

  • 三网通充值卡使用步骤

    三网通充值卡使用步骤

  • wifi没信号(wifi没信号怎么处理)

    wifi没信号(wifi没信号怎么处理)

  • 苹果降低白点值多少合适(苹果降低白点值调多少合适)

    苹果降低白点值多少合适(苹果降低白点值调多少合适)

  • 微信退出登录了还能定位吗(微信退出登录了打微信电话)

    微信退出登录了还能定位吗(微信退出登录了打微信电话)

  • 抖音赞全部作品会被限流吗(抖音赞全部作品怎么看)

    抖音赞全部作品会被限流吗(抖音赞全部作品怎么看)

  • 手提电脑为什么连接不上WIFI(手提电脑为什么连不上手机热点)

    手提电脑为什么连接不上WIFI(手提电脑为什么连不上手机热点)

  • 为什么手机打电话显示无法连接移动网络(为什么手机打电话别人听不到声音)

    为什么手机打电话显示无法连接移动网络(为什么手机打电话别人听不到声音)

  • 华为键盘怎么切换(华为键盘怎么切换中文输入法)

    华为键盘怎么切换(华为键盘怎么切换中文输入法)

  • word不激活影响使用吗(不激活word的不能编辑文本吗)

    word不激活影响使用吗(不激活word的不能编辑文本吗)

  • 手机充一晚上电会怎么样(手机充一晚上电开不了机怎么回事)

    手机充一晚上电会怎么样(手机充一晚上电开不了机怎么回事)

  • 华为平板m6能插u盘吗(华为平板m6能插耳机吗)

    华为平板m6能插u盘吗(华为平板m6能插耳机吗)

  • wps2019怎么查找内容(在wps怎么查找)

    wps2019怎么查找内容(在wps怎么查找)

  • ai安装失败(小米sai安装失败)

    ai安装失败(小米sai安装失败)

  • 一加手机耐用吗(2023年最建议买的手机)

    一加手机耐用吗(2023年最建议买的手机)

  • qq怎么从相册使用动态头像(qq怎么从相册使用照片上传)

    qq怎么从相册使用动态头像(qq怎么从相册使用照片上传)

  • wps表格中如何创建组(wps表格如何创建组)

    wps表格中如何创建组(wps表格如何创建组)

  • 电脑文件怎么发送到qq(电脑文件怎么发送到qq邮箱)

    电脑文件怎么发送到qq(电脑文件怎么发送到qq邮箱)

  • 没有网络摄像头 ,您将无法运行 Win11(有没有不需要网络的摄像头)

    没有网络摄像头 ,您将无法运行 Win11(有没有不需要网络的摄像头)

  • 做毕业设计,前端部分你需要掌握的6个核心技能(做毕业设计,前景如何)

    做毕业设计,前端部分你需要掌握的6个核心技能(做毕业设计,前景如何)

  • WebSocket的使用方法(JS前端)(websocket怎么用)

    WebSocket的使用方法(JS前端)(websocket怎么用)

  • mysql覆盖索引如何理解(sql 覆盖索引)

    mysql覆盖索引如何理解(sql 覆盖索引)

  • 应纳税所得额高了好还是低了好
  • 小规模纳税人企业所得税多少
  • 税控是干什么用的
  • 关税完税价格计算消费税公式
  • 简易计税方法使用范围
  • 消费税可以在企业抵扣吗
  • 跨年租赁费如何处理
  • 销售费用有业务招待费餐费么
  • 收入纳税明细里的收入是税前还是税后
  • 利润表营业外收入怎么取数
  • 工业企业库存商品的初始入账成本
  • 库存商品对外销售会计分录
  • 债券溢价摊销额计算公式
  • 租赁公司运输费计入什么科目
  • 计算完工产品成本和月末在产品成本
  • 进口增值税内销可以抵扣吗
  • 利息支出企业所得税税前扣除标准
  • 出售单位车辆如何处理业务?
  • 计提本月城市维护建设税,教育费附加500元
  • Linux如何给文件赋予内容
  • win10重置此电脑的密码是什么
  • 净利润与未分配利润的勾稽关系
  • unix和linux适用于
  • 杜鹃花怎么养家庭养法视频
  • windows 11截图
  • scardsvr32.exe - scardsvr32是什么进程 有什么用
  • PHP:session_decode()的用法_Session函数
  • thinkphp invoke
  • 房产税应计入哪个会计科目
  • 失控发票进项转出后要补企业所得税吗
  • vue 首页
  • 报销差旅费会计凭证
  • yii2局部关闭(开启)csrf的验证的实例代码
  • 对外投资损失是负债吗
  • php使用自定义函数的方式
  • php 带cookie post
  • basename $1
  • 增值税普通发票可以抵扣吗
  • 如何确定可以结婚生子
  • mysql查询的结果缓存里怎么清除
  • mongodb中主键的默认格式是哪个?
  • mongodb主从复制原理
  • MYSQL的数据类型共有几大类?
  • 客户多付的货款 不用退回 进营业外收入吗
  • 收购企业如何做账
  • 平销返利如何开票是负数的
  • 公司注销时退还实收资本要交个税吗
  • 税盘进项税额怎么做
  • 长期股权投资稀释股权
  • 长期股权投资成本法转权益法例题
  • 一般纳税人怎样开3个点的专票
  • 库存现金存入银行是什么凭证
  • 未收到发票暂估分录
  • 资产评估资产如何入帐
  • 工程结算和工程竣工决算的区别
  • 园林土方施工有哪些分项工程
  • 重要性水平如何判断
  • 私企公转私出纳有责任吗
  • mysql8设置时区
  • sql server 还原数据库后显示为备用只读
  • win8升级win10系统会卡吗
  • ubuntu14.04 LTS 下vsftpd安装与配置教程详解
  • 注册表mime
  • zui哪个版本最好
  • vim中执行shell命令
  • win10应用商店更新比蜗牛还慢
  • 在linux操作系统中把外部设备当作文件统一管理
  • 在linux中使用ssh远程调试后目标板的输出在哪里
  • win8应用商店无法使用
  • windows定位
  • opengl绘制ui
  • border:none与border:0使用区别
  • 安卓开发viewpager的用法
  • ugui scrollview
  • jquery mobile开发环境
  • js prev()
  • 广东省纳税信用等级
  • 铁岭医保网上怎么交费
  • 土地流转需要什么材料
  • 烟叶税的意义和感悟
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设