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

  • 小米一键连招怎么关了(小米一键连招怎么降级版本)

    小米一键连招怎么关了(小米一键连招怎么降级版本)

  • 微信小程序加载特别慢(微信小程序加载不出来怎么办)

    微信小程序加载特别慢(微信小程序加载不出来怎么办)

  • 微信用验证码登录显示操作频繁(微信用验证码登录显示账号密码错误)

    微信用验证码登录显示操作频繁(微信用验证码登录显示账号密码错误)

  • 快手挂小黄车需要什么条件(快手挂小黄车需要多少粉丝)

    快手挂小黄车需要什么条件(快手挂小黄车需要多少粉丝)

  • 手机上视频怎么重命名(手机上视频怎么传到电脑上)

    手机上视频怎么重命名(手机上视频怎么传到电脑上)

  • 安卓是哪个公司开发的系统(安卓是哪个公司开发的)

    安卓是哪个公司开发的系统(安卓是哪个公司开发的)

  • los闪红灯过一会恢复(los红灯一会闪一会不闪)

    los闪红灯过一会恢复(los红灯一会闪一会不闪)

  • 苹果手机充电口有脏会不会有什么影响(苹果手机充电口进水提示无法充电)

    苹果手机充电口有脏会不会有什么影响(苹果手机充电口进水提示无法充电)

  • 宿舍没有wifi怎么办(宿舍没有wifi怎么用投影仪)

    宿舍没有wifi怎么办(宿舍没有wifi怎么用投影仪)

  • 手机怎么给动图加水印(手机怎么给动图加图片)

    手机怎么给动图加水印(手机怎么给动图加图片)

  • 手机投不了屏怎么设置(手机投不了屏怎么回事)

    手机投不了屏怎么设置(手机投不了屏怎么回事)

  • 芯片的主要作用是什么(马里亚纳芯片的主要作用)

    芯片的主要作用是什么(马里亚纳芯片的主要作用)

  • 探探可以对某人隐身吗(探探可以找好友吗)

    探探可以对某人隐身吗(探探可以找好友吗)

  • 手机上的快手是干啥的(手机上的快手有什么用处)

    手机上的快手是干啥的(手机上的快手有什么用处)

  • 移动卡怎么转电信卡(移动卡怎么转电信卡电话号码不变)

    移动卡怎么转电信卡(移动卡怎么转电信卡电话号码不变)

  • 华为crrul00 属于什么机型(华为型号crr-ul00手机)

    华为crrul00 属于什么机型(华为型号crr-ul00手机)

  • vue怎么添加抖音里的音乐(vue添加dom)

    vue怎么添加抖音里的音乐(vue添加dom)

  • 美颜相机会改变五官吗(美颜相机会改变照片的像素吗)

    美颜相机会改变五官吗(美颜相机会改变照片的像素吗)

  • 剪映怎么剪辑音乐(剪映怎么剪辑音频时长)

    剪映怎么剪辑音乐(剪映怎么剪辑音频时长)

  • 手机qq怎么看删除的好友(手机qq怎么看删除的人)

    手机qq怎么看删除的好友(手机qq怎么看删除的人)

  • 原装耳机和非原装区别(原装耳机跟普通耳机的区别)

    原装耳机和非原装区别(原装耳机跟普通耳机的区别)

  • 扩容内存有什么坏处吗(扩容内存好吗)

    扩容内存有什么坏处吗(扩容内存好吗)

  • 闲聊如何撤销实名认证(闲聊怎么处理的)

    闲聊如何撤销实名认证(闲聊怎么处理的)

  • 鸿蒙OS系统应用横条怎么关闭?(鸿蒙os程序)

    鸿蒙OS系统应用横条怎么关闭?(鸿蒙os程序)

  • 【Java基础】一个Java文件可以有多个类(外部类、内部类)(java基础教程)

    【Java基础】一个Java文件可以有多个类(外部类、内部类)(java基础教程)

  • 运城盐湖,中国山西 (© Xinhua/Alamy)(运城盐湖中国死海养生城)

    运城盐湖,中国山西 (© Xinhua/Alamy)(运城盐湖中国死海养生城)

  • 非盈利组织确认及所得税汇算怎么做
  • 认证一般纳税人之前取得的专票
  • 支付与其他经营活动有关的现金公式
  • 空调安装发票税率
  • 专利年费是不是只能一项一项交
  • 企业所得税包含哪些税种
  • 收到政府补助需要缴纳企业所得税吗
  • 房地产企业收到预收款如何纳税
  • 工伤一次性医疗补助金由谁支付
  • 销售税金及附加含增值税吗
  • 房产税逾期未申报罚款多少
  • 扶贫算出差吗
  • 发票认证费用
  • 净现值为什么要除以它的折现率
  • 酒店住宿可以开免税发票吗?
  • 香港公司在大陆设立子公司
  • 营改增后,代扣代缴所得税应当按照含税收入还是不含税收入?
  • 机动车销售发票如何补开?
  • 中小企业代扣代缴增值税抵扣时限
  • 哪些外籍个人应在中国缴纳个税?
  • 工资条上税基调整是啥意思
  • 固定资产不动产和动产的区别
  • 录入凭证时记账的依据是
  • 办公室租金可以计入办公费吗
  • 个人业务费是什么
  • 个人出租房屋税款代征点电话
  • mac打印机状态暂停怎么处理
  • 个税手续费返还属于政府补助吗
  • 实收资本或股本账户属于企业的什么账
  • windows10出现你的电脑出现问题
  • win7为什么这么多人用
  • 冲销去年凭证会计分录
  • .exe是什么文件
  • php log函数
  • 交易性金融资产包括哪些项目
  • 补缴以前年度公积金误入当年费怎么办
  • react 刷新
  • windows nginx php配置
  • 参展费会计分录
  • php的中文名
  • vue 状态管理
  • 公司注销清算的会计分录
  • 商品和服务税收分类编码表下载
  • 退税是上一年交的税都会退吗
  • 收到抵扣发票怎么做分录
  • asp 数据库
  • 事业单位以资产为准吗
  • 报销发票啥意思
  • 工程建设期间发生的差旅费
  • 公户里的钱可以随便转出嘛
  • 公对公打款发票
  • 异地预缴税款怎么抵扣
  • 房屋预售收入
  • 涉税信息声明怎么提供
  • 账本还用贴印花税票吗
  • 盘亏的固定资产是资产吗
  • 借方是收入还是支出损益类
  • 企业一般户怎么查询
  • 商贸公司会计成本核算方法
  • 个税返还申请流程
  • 车属于固定资产嘛
  • 会计账簿的设计原则有哪些
  • mysql双主复制
  • Linux下mysql 5.6.17安装图文教程详细版
  • win2003注册表空间不足
  • Linux系统磁盘分配
  • 在mac设备上用到什么
  • linux定时删除2天前的文件输出日志
  • Win10系统如何打开任务管理器
  • 如何在linux中安装软件
  • win7用超级管理员登录
  • win7玩英雄联盟卡顿怎么解决
  • jquery操作表格
  • android消息队列使用
  • nodejs readfile
  • eclipse怎么查看项目的位置
  • android自定义view的三大流程
  • 税务局税收分类编码
  • 工会经费计提比例0.8%
  • 企业没有经营怎么写原因
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设