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

  • 拉黑再删除和纯删除(拉黑再删除和直接删除一样吗)

    拉黑再删除和纯删除(拉黑再删除和直接删除一样吗)

  • 如何设置电脑休眠时间设置(如何设置电脑休眠唤醒方式)

    如何设置电脑休眠时间设置(如何设置电脑休眠唤醒方式)

  • 充电宝毫安是什么意思(充电宝毫安的意思)

    充电宝毫安是什么意思(充电宝毫安的意思)

  • 支付宝怎么开启深色模式(支付宝怎么开启语音到账)

    支付宝怎么开启深色模式(支付宝怎么开启语音到账)

  • 打印机型号编码显示不可用(打印机型号编码能更改吗)

    打印机型号编码显示不可用(打印机型号编码能更改吗)

  • 微信一天加多少人会封号(微信一天加多少好友会频繁)

    微信一天加多少人会封号(微信一天加多少好友会频繁)

  • 6核和8核的区别(6核和八核区别)

    6核和8核的区别(6核和八核区别)

  • 红米k20pro需要贴膜吗(红米k20pro是全贴合屏幕吗)

    红米k20pro需要贴膜吗(红米k20pro是全贴合屏幕吗)

  • 笔记本电脑不通电开不了机是什么原因(笔记本电脑不通电维修)

    笔记本电脑不通电开不了机是什么原因(笔记本电脑不通电维修)

  • 苹果6改密码在哪里修改(苹果6更改密码)

    苹果6改密码在哪里修改(苹果6更改密码)

  • 手机数据备份在哪里(手机数据备份在本地,本地是哪里?)

    手机数据备份在哪里(手机数据备份在本地,本地是哪里?)

  • 嘀嗒限制接单有什么办法吗(滴嗒限制接单怎样恢复)

    嘀嗒限制接单有什么办法吗(滴嗒限制接单怎样恢复)

  • 华为p30充电要多久(华为p30充电要多久才能充满)

    华为p30充电要多久(华为p30充电要多久才能充满)

  • 苹果11多少寸(苹果11多少寸的屏幕)

    苹果11多少寸(苹果11多少寸的屏幕)

  • 暴风影音如何转换视频格式(暴风影音如何转屏)

    暴风影音如何转换视频格式(暴风影音如何转屏)

  • 怎么更新ios13系统(怎么更新ios13.0)

    怎么更新ios13系统(怎么更新ios13.0)

  • 苹果微信下载的视频在哪里(苹果微信下载的apk在哪个文件夹)

    苹果微信下载的视频在哪里(苹果微信下载的apk在哪个文件夹)

  • iphone8p有红外遥控吗(iphone8p有红外遥控功能吗)

    iphone8p有红外遥控吗(iphone8p有红外遥控功能吗)

  • 魅族怎么打开OTG(魅族怎么打开地震预警)

    魅族怎么打开OTG(魅族怎么打开地震预警)

  • 标题怎么设置(二级标题怎么设置)

    标题怎么设置(二级标题怎么设置)

  • 58同城如何发布租房信息(58同城如何发布广告)

    58同城如何发布租房信息(58同城如何发布广告)

  • 找不到powershell.ink(找不到powershell.exe文件)

    找不到powershell.ink(找不到powershell.exe文件)

  • win10蓝牙驱动程序错误解决方法(win10蓝牙驱动程序下载)

    win10蓝牙驱动程序错误解决方法(win10蓝牙驱动程序下载)

  • win11怎么实现单击手写笔打开便笺? win11手写笔快捷操作设置方法(windows11怎么操作)

    win11怎么实现单击手写笔打开便笺? win11手写笔快捷操作设置方法(windows11怎么操作)

  • 【机器学习】KNN算法及K值的选取

    【机器学习】KNN算法及K值的选取

  • 亲测有效,低调使用,这里有个白票ChatGPT的方法(低调低调)

    亲测有效,低调使用,这里有个白票ChatGPT的方法(低调低调)

  • 民营医院所得税如何计算
  • 安置残疾人税收优惠
  • 小规模差额申报怎么申报
  • 坏账计提坏账准备
  • 包装纸箱属于原材料吗
  • 负数增长到正数的例子
  • 一般纳税人增值税优惠政策
  • 固定资产原值错误的账务处理
  • 建筑工程外地预交税款后完工怎么办
  • 未达账项怎么做会计分录
  • 研发项目领原料加工成产品会计处理是怎样的?
  • 网上支付的三种类型
  • 核定征收企业所得税能否享受税收优惠
  • 简易计税的收入怎么做账
  • 业务订单需求表
  • 消费税有哪几种纳税方式
  • 小规模纳税人还是一般纳税人
  • 小规模纳税人增值税超过30万怎么纳税
  • 新政府会计制度与旧制度区别
  • 污水处理服务费用交印花税吗
  • 发票金额大于实际支付金额如何报账
  • 应付利息和应计利息怎么区分
  • win11默认用户名
  • 国家税务条例
  • 收到一张增值税红冲发票
  • 去实体店装win10专业版多少钱
  • manjaro linux安装教程
  • 咨询公司流程完整
  • 借条和欠条的区别 法律效力
  • 电脑桌面上的图片怎么打印
  • 付了款对方不开发票
  • 以旧换新方式销售货物的,不得扣除旧货价值
  • 常见造成账目差异的原因
  • 缴纳个税时怎么做分录
  • 发票开错抬头怎么进行税务处理?
  • 政府收购企业的补偿款要交税吗
  • php文件上传后只显示了路径怎么办啊
  • 计提坏账的比例是多少
  • web2.0核心
  • 你还没等于几
  • php验证系统
  • 往来款项清查账务处理
  • 解决掉发的有效方法
  • php headers
  • 个体户开发票超过定额是如何交税?
  • 企业税金及附加包括什么
  • 预计净残值影响折旧吗
  • 一般纳税人可以给小规模开专票吗
  • 出口退税计入
  • 长期股权投资稀释股权
  • 销售折让的红字信息申请表怎么做
  • 过桥贷款有什么风险
  • 退税政策调整
  • 加盟费开发票
  • 工会经费结余可以结转下年吗
  • 递延收入怎么做账
  • 含运费的原材料会计分录
  • 非正常损失的原因是什么
  • 信息服务费可以抵扣吗
  • 苗木免税发票可以开专票吗
  • 房屋装修支出怎么做账
  • Linux系统下Mysql使用简单教程(一)
  • win10自带的音乐播放器groove如何设置
  • windowxp操作系统
  • qttask.exe是什么进程?qttask.exe是不是病毒?
  • 苹果电脑怎么下魔兽争霸
  • Red Hat Enterprise Linux AS release 4 apache+MYsql+PHP的安装和优化
  • windows怎么右键
  • win7如何禁用网卡
  • 如何解决windows激活问题
  • win7系统玩游戏怎么样
  • cocos2dx4.0教程
  • javascript基础笔记
  • 每天自动重启命令
  • unity 3d插件
  • javascript getattribute
  • js domcontentloaded
  • 软件开发交流平台
  • 广东省国家税务总局官网
  • 天津市税务机关代码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设