位置: 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)

  • 怎么在手机上开通快捷支付功能(怎么在手机上开通手机银行)

    怎么在手机上开通快捷支付功能(怎么在手机上开通手机银行)

  • 央视频可以回看吗(央视频可以回看世界杯吗)

    央视频可以回看吗(央视频可以回看世界杯吗)

  • iPhone 12Pro Max尺寸是多大(iphone12promax尺寸)

    iPhone 12Pro Max尺寸是多大(iphone12promax尺寸)

  • 腾讯自动续费微信在哪里关闭(腾讯自动续费微信怎么关闭自动扣费)

    腾讯自动续费微信在哪里关闭(腾讯自动续费微信怎么关闭自动扣费)

  • 投屏网速慢怎么办(投屏网速不稳定)

    投屏网速慢怎么办(投屏网速不稳定)

  • 电脑上的广告怎么永久删除(电脑上的广告怎么拦截)

    电脑上的广告怎么永久删除(电脑上的广告怎么拦截)

  • ipadpro可以装ai软件吗(ipadpro可以下载ps和ai吗)

    ipadpro可以装ai软件吗(ipadpro可以下载ps和ai吗)

  • AutoCAD软件中默认的文字高度是(cad默认模版)

    AutoCAD软件中默认的文字高度是(cad默认模版)

  • word打开后排版变了(word文件打开排版有问题)

    word打开后排版变了(word文件打开排版有问题)

  • 华为mate30 6+128和8+128区别(mate30 6 128和8 128区别)

    华为mate30 6+128和8+128区别(mate30 6 128和8 128区别)

  • 华为手机接收信息不显示(华为手机接收信号的部位图)

    华为手机接收信息不显示(华为手机接收信号的部位图)

  • 华为手机怎么弄两个系统(华为手机怎么弄微信分身)

    华为手机怎么弄两个系统(华为手机怎么弄微信分身)

  • 荣耀20屏幕多少HZ(荣耀20屏幕多少钱)

    荣耀20屏幕多少HZ(荣耀20屏幕多少钱)

  • 为什么华为看抖音很卡(为什么华为看抖音模糊)

    为什么华为看抖音很卡(为什么华为看抖音模糊)

  • 光猫有无线功能吗(光猫有无线功能还用装路由器吗)

    光猫有无线功能吗(光猫有无线功能还用装路由器吗)

  • 连接速度72mbps快吗(链接速度702mbps)

    连接速度72mbps快吗(链接速度702mbps)

  • 手机缓存的视频能导入电脑看嘛(手机缓存的视频在哪里找)

    手机缓存的视频能导入电脑看嘛(手机缓存的视频在哪里找)

  • 抖音怎么发图片(抖音怎么发图片配自己说话)

    抖音怎么发图片(抖音怎么发图片配自己说话)

  • 开发app常见的错误有哪些(开发app的难点)

    开发app常见的错误有哪些(开发app的难点)

  • centos关闭防火墙命令(centOS关闭防火墙)

    centos关闭防火墙命令(centOS关闭防火墙)

  • 在win7中,为什么清空回收站后还是满状态?(win7为什么现在不能用了)

    在win7中,为什么清空回收站后还是满状态?(win7为什么现在不能用了)

  • 桌面级 CPU 天梯图(桌面级cpu天梯图快科技)

    桌面级 CPU 天梯图(桌面级cpu天梯图快科技)

  • sfdisk命令  硬盘分区工具(diskgenius命令)

    sfdisk命令 硬盘分区工具(diskgenius命令)

  • python第三方包安装遇到报错处理(python第三方库安装教程)

    python第三方包安装遇到报错处理(python第三方库安装教程)

  • 待认证进项税额是什么情况下用的
  • 增值税的特点是实行
  • 定期定额自行申报流程
  • 汽车维修公司做账基本流程
  • 简单的记账方法明细表格怎么做
  • 报销用专票
  • 政府返还的增值税怎么算
  • 从一个公司到另一个公司公积金
  • 兼职业务拿提成合法吗
  • 水资源税怎么入账
  • 纳税人取得虚开的增值税专用发票处理问题的通知
  • 增值税出口免退什么意思
  • 商场促销的税务处理怎么做?
  • 电子承兑汇票转让怎么操作
  • 哪些费用可以计入待摊费用
  • 详解价外费用的会计核算
  • 税务审计什么时候进行
  • 如何计算纳税调整增加额
  • 个税和实发不一样
  • 旅游业开办费
  • 收到农产品发票3%抵9%怎么做账
  • 试营业生产的样品怎么做账?
  • 补提的增值税应该记在哪里
  • 工程公司收到工程款
  • windows11我的电脑怎么放到桌面
  • 固定资产清理是什么项目
  • 公司报销医疗费的范围
  • 德比郡在哪
  • 城镇土地使用税的计算公式
  • 预缴企业所得税分录
  • laravel框架的优缺点
  • 分公司注销,总公司账务处理
  • 报税货物范围包括
  • uniapp面试题必问的坑
  • mvc与mvvm
  • nodejs如何与前端交互
  • javascript基础编程
  • php 电子签名
  • discuz关闭电脑版
  • 印花税申报成功后在哪缴税
  • 合伙结算转借款
  • 非流动资产基金 新会计制度 对应
  • 如何用织梦在本地搭建网站
  • 织梦自适应模板怎么弄
  • 企业有什么税收
  • 公司广告费用咨询费都应当作为管理费用对还是错
  • 如何确定固定资产是否已经发生减值
  • 使用mysql的disctinct group by查询不重复记录
  • 房产税的纳税人包括
  • 销售中介费一般收多少
  • 税控系统技术维护费会计处理
  • 装修付款分期
  • 一般纳税人资格证书怎么查询
  • 个体工商户分配所得
  • 进项税额转出缴税放在什么科目里
  • 免征印花税的6个项目
  • 公司利润太高了怎么办
  • 锁mysql
  • linux如何读
  • window部署服务
  • Ubuntu 12.04/14.04 LTS版内核更新 修复七个重大安全漏洞
  • win7那些自启可以禁用
  • ubuntu和debian哪个稳定
  • windows7磁盘管理
  • mac系统怎么共享文件夹
  • 电脑系统垃圾
  • win8.1使用
  • ssh客户端软件
  • perl命令
  • opengl渲染流程图
  • Node.js中的construct
  • javascript 代码
  • 初识大学主题征文
  • xml-js
  • iframe例子
  • 在北京税前工资8000算多的吗
  • 租车费为何不能抵扣
  • 各种税费申报日期
  • 国际税务师证书
  • 深圳代理记账公司赚钱吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设