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

  • 又论博客优化应该注意的几个地方(博客网站应该怎么优化)

    又论博客优化应该注意的几个地方(博客网站应该怎么优化)

  • 小米10s可以用电信移动卡(小米1s电信版能用移动卡吗)(小米10s可以用电信卡吗)

    小米10s可以用电信移动卡(小米1s电信版能用移动卡吗)(小米10s可以用电信卡吗)

  • iqoo8pro怎么开启游戏伴侣(iQOO8Pro怎么开启LTPO)

    iqoo8pro怎么开启游戏伴侣(iQOO8Pro怎么开启LTPO)

  • word的表格工具在哪儿(word的表格工具布局在哪里)

    word的表格工具在哪儿(word的表格工具布局在哪里)

  • 苹果手机短信拦截怎么设置(苹果手机短信拦截在哪里设置)

    苹果手机短信拦截怎么设置(苹果手机短信拦截在哪里设置)

  • vivo深色模式在哪里(vivo深色模式在哪里设置)

    vivo深色模式在哪里(vivo深色模式在哪里设置)

  • 步步高学习机怎么截屏(步步高学习机下载中心)

    步步高学习机怎么截屏(步步高学习机下载中心)

  • 录音的文件夹叫什么名字(录音的文件夹叫什么)

    录音的文件夹叫什么名字(录音的文件夹叫什么)

  • 淘宝付款人数什么时候刷新(淘宝付款人数显示规则)

    淘宝付款人数什么时候刷新(淘宝付款人数显示规则)

  • 换手机黑名单会消掉吗(换手机黑名单会备份吗)

    换手机黑名单会消掉吗(换手机黑名单会备份吗)

  • 手机总是无法接通是什么原因(手机没信号怎么解决)

    手机总是无法接通是什么原因(手机没信号怎么解决)

  • qq可能认识的人原理(qq可能认识的人怎么不让别人看到)

    qq可能认识的人原理(qq可能认识的人怎么不让别人看到)

  • dram和sram的区别(sram和dram的区别是什么)

    dram和sram的区别(sram和dram的区别是什么)

  • 荣耀有哪些系列(荣耀有哪些系列产品)

    荣耀有哪些系列(荣耀有哪些系列产品)

  • 知乎可以看最近访客吗(知乎看最近访客)

    知乎可以看最近访客吗(知乎看最近访客)

  • lndal40华为什么机型(华为lndal40什么型号手机)

    lndal40华为什么机型(华为lndal40什么型号手机)

  • 苹果售后中心给验机吗(苹果售后中心给退货吗)

    苹果售后中心给验机吗(苹果售后中心给退货吗)

  • 苹果无线耳机怎么看电量(苹果无线耳机怎么接电话和挂断电话)

    苹果无线耳机怎么看电量(苹果无线耳机怎么接电话和挂断电话)

  • beats如何连接其他设备(beats耳机怎样连接)

    beats如何连接其他设备(beats耳机怎样连接)

  • 美版苹果11pro支持双卡吗(美版苹果11pro能插几张卡)

    美版苹果11pro支持双卡吗(美版苹果11pro能插几张卡)

  • iphone11多重多少克(苹果11多重多大)

    iphone11多重多少克(苹果11多重多大)

  • linux移动文件命令(linux移动文件命令mv)

    linux移动文件命令(linux移动文件命令mv)

  • 苹果手机可以把门禁卡等弄到手机里吗(苹果手机可以把pdf转换成word)

    苹果手机可以把门禁卡等弄到手机里吗(苹果手机可以把pdf转换成word)

  • 回收站是什么中的一块区域(回收站是什么中的空间)

    回收站是什么中的一块区域(回收站是什么中的空间)

  • 屏幕耗电量大怎么解决方案(屏幕耗电高)

    屏幕耗电量大怎么解决方案(屏幕耗电高)

  • 开关电源PCB排版基本规则(开关电源pcb布线规则)

    开关电源PCB排版基本规则(开关电源pcb布线规则)

  • 离职员工奖金发放规定
  • 土地增值税常见问题及解答
  • 支付的各项税费现金流量表怎么填
  • 政府补贴的账务属于哪个科目
  • 工地工贸药品入库流程
  • 缴纳上个月增值税要先计提吗
  • 工程施工和工程结算对冲有差额的会计分录
  • 增值税税金不足1元未缴纳账务处理
  • 企业库存现金的限额是由( )核定的
  • 差旅费报销单属于什么凭证?
  • 商家促销怎么做
  • 抵货款回来的产品叫什么
  • 如何区分餐费发票和停车费发票?
  • 文化事业建设费减免政策
  • 合作社开具的免税普票计算抵扣
  • 商品进销差价属不属于存货
  • 实收资本选择什么子目
  • 发票销货清单需要到税务局吗
  • 没有预付账款科目计入哪里
  • 收到其他与经营活动有关的现金减少
  • 电子承兑转出后多久到账
  • 出口退税进口免税
  • 医用酒精出口 需要什么条件
  • 技嘉主板bios更新后无法开机
  • 年终一次性奖金个税计算
  • mac的分辨率怎么调
  • 土地用于自建项目怎么办
  • 如何用腾讯电脑管家删除文件
  • win10 多屏协同
  • dvdram是什么意思
  • 差旅费津贴个人所得税题目
  • 无形资产的摊销方法
  • 单位撤销现金余额的规定
  • 增值税发票销货清单怎么打印
  • realsense d415参数
  • 财务费用是一种期间费用,按期归集
  • 冰岛北部内陆景观有哪些
  • siri怎么重置主人声音ios13
  • 中小企业所得税优惠政策2022
  • 差旅费报销会议记录
  • date=date
  • 帝国cms移动端
  • 什么是跨域以及解决方法
  • 织梦停止更新了吗
  • 本年利润贷方余额表示盈利还是亏损
  • 个人去开票要交税吗
  • 如何在sql server中打开已有数据库
  • 综合所得减除费用标准为60000.00元/年
  • 股东以固定资产入股会计处理
  • 营业成本怎么理解
  • 还未摊销的房租怎么入账
  • 工商年报资产状况公示还是不公示
  • 运输公司车辆保养记录表格
  • 去年多计提的费用
  • 开发间接费用怎么计算
  • 买房定金转给销售有效吗
  • 资金账簿减半征收印花税
  • 装修公司做账涉及科目
  • win7怎么打开后缀
  • vmware 错误
  • vrvrf.exe是什么进程
  • windows磁盘如何分区
  • win7 更新
  • win10开始菜单怎么居中
  • window mobile系统
  • linux列操作
  • 备份引导分区
  • js实现拖拽元素改编顺序
  • jqueryform表单提交
  • jquery 下拉框变更事件
  • scrollcontroller
  • 修改文件名ren
  • vue轮播图插件有哪些
  • javascript构成
  • node.js下载安装教程
  • Android Fragment 体系 源码追踪笔记(4)
  • 国税局事业编制和公务员哪个比较好
  • 低丰度油气田开采的原油
  • 区里的地税局局长是谁
  • 车辆购置税属于税金及附加吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设