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

  • 青年湖南怎么切换账号(青年湖南如何切换账号)

    青年湖南怎么切换账号(青年湖南如何切换账号)

  • 帧率是什么意思(平均帧率是什么意思)

    帧率是什么意思(平均帧率是什么意思)

  • 支付宝小鸡饲料容量最大多少(支付宝小鸡饲料今天答题)

    支付宝小鸡饲料容量最大多少(支付宝小鸡饲料今天答题)

  • 爱奇艺随刻版是什么(爱奇艺随刻版是什么软件)

    爱奇艺随刻版是什么(爱奇艺随刻版是什么软件)

  • 小米mix3小窗口模式在哪设置(小米mix3小窗口一直固定在屏幕)

    小米mix3小窗口模式在哪设置(小米mix3小窗口一直固定在屏幕)

  • 苹果电池健康功能在哪(苹果电池健康功能在哪里)

    苹果电池健康功能在哪(苹果电池健康功能在哪里)

  • 显卡背板烫手正常吗(显卡背板烫手正常吗知乎)

    显卡背板烫手正常吗(显卡背板烫手正常吗知乎)

  • 小米8se充电要求(小米8se充电要求多少瓦)

    小米8se充电要求(小米8se充电要求多少瓦)

  • 华为手机怎样取消应用加密(华为手机怎样取卡出来的视频)

    华为手机怎样取消应用加密(华为手机怎样取卡出来的视频)

  • cpu待机50度正常吗(cpu待机57度)

    cpu待机50度正常吗(cpu待机57度)

  • 旋风加速器有什么用

    旋风加速器有什么用

  • ipad用久了声音变小(ipad的声音沉闷)

    ipad用久了声音变小(ipad的声音沉闷)

  • wd移动硬盘读不出来怎么办(移动硬盘无法读出)

    wd移动硬盘读不出来怎么办(移动硬盘无法读出)

  • 集线器在osi第几层(集线器工作在数据链路层吗)

    集线器在osi第几层(集线器工作在数据链路层吗)

  • 电脑显示屏电源线有哪几种(电脑显示屏电源按钮锁定了怎么解除)

    电脑显示屏电源线有哪几种(电脑显示屏电源按钮锁定了怎么解除)

  • iphone进水充不进去电怎么办(iphone进水充不进去电可以用冷风吹吗)

    iphone进水充不进去电怎么办(iphone进水充不进去电可以用冷风吹吗)

  • 爱奇艺私聊在哪里(爱奇艺怎么私信关注的人)

    爱奇艺私聊在哪里(爱奇艺怎么私信关注的人)

  • 华为cun-tl00怎么截屏(华为cun-tl00怎么恢复出厂设置)

    华为cun-tl00怎么截屏(华为cun-tl00怎么恢复出厂设置)

  • 华为mate20pro可以用5g吗(华为mate20pro可以装内存卡么)

    华为mate20pro可以用5g吗(华为mate20pro可以装内存卡么)

  • 相互宝暂时无法加入(相互宝暂时无法绑定)

    相互宝暂时无法加入(相互宝暂时无法绑定)

  • 苹果xr有小圆点吗(苹果xr手机小圆点)

    苹果xr有小圆点吗(苹果xr手机小圆点)

  • 华为鸿蒙系统超级终端怎么显示?华为鸿蒙系统超级终端详细使用教程(华为鸿蒙系统超级终端怎么用)

    华为鸿蒙系统超级终端怎么显示?华为鸿蒙系统超级终端详细使用教程(华为鸿蒙系统超级终端怎么用)

  • win10 20H2如何关闭微软自带杀毒软件Defender 简单快速的关闭方法(w10关闭)

    win10 20H2如何关闭微软自带杀毒软件Defender 简单快速的关闭方法(w10关闭)

  • js怎么实现倒计时效果(js怎么实现倒计时)

    js怎么实现倒计时效果(js怎么实现倒计时)

  • 小规模纳税人销售已使用固定资产
  • 跨年的所得税会计分录
  • 资产负债表债务法核算所得税
  • 出差会议纪要模板
  • 服装纳税税率
  • 生产企业出售空调设备
  • 核算科目拨出专票怎么弄
  • 房地产企业取得净地的税收筹划
  • 资产损失税前扣除
  • 个人互换住房土地增值税
  • 小规模纳税人购买原材料会计分录
  • 进口货物的代理报关服务费计入
  • 给货代付海运费手续费怎么算
  • 税局代个人开增值税专票
  • 本单位员工投稿怎么写
  • 计提缴纳社保的会计分录
  • 增值税多交可以在下一期直接抵吗
  • 汇算清缴报错了怎么更正
  • 2021年个人社保代扣失败
  • 项目结束,财务应该怎么做
  • 谷歌浏览器adobe flash player已不再支持
  • 预付账款为什么是资产
  • 金蝶kis期初余额设置
  • 视同销售怎么做账务处理
  • wifi信号弱了
  • 融资租入固定资产的账务处理
  • 2015年4月4日摄于Tear Drop Arch附近的月全食,犹他州纪念碑谷 (© Alan Dyer/Alamy)
  • 废品损失属于产品生产成本吗
  • 开的发票超过了限额会怎样,怎么办?
  • 计提的福利费怎么处理
  • groupdel命令详解
  • python填写表格
  • 引导式申报带出来的开票额与金税盘显示的不一致
  • 哪些合同必须签订书面合同
  • 小规模企业一定是小微企业吗
  • 融资租赁车辆过户给个人
  • python PyQt如何使用资源
  • mysql使用ssl连接
  • mongodb数据库的作用
  • 生产辅料怎么分类
  • 固定补贴是否属于社保
  • 当月入账的进项税必须当月认证吗
  • 公司申请破产后员工有赔偿吗
  • 新会计准则其他收益核算内容
  • 服务合同开什么发票
  • 以前年度损失如何记账
  • 住宿发票费率是多少
  • etc插卡成功有什么反应
  • 做个公司网站一般需要多少钱
  • 税务监制章验证无效
  • 甲方代付农民工工资谁报个税
  • 利息资本化的利弊
  • 装修公司开劳务费怎么选择税控编码
  • 账务调整会计分录
  • 新企业如何建帐
  • centos6.5中文
  • win8任务管理器在哪
  • windowxp操作系统
  • 不在同一子网的ip
  • bios详细解释
  • xp系统如何禁止各种窗口弹出
  • linux和windows关系
  • windows10秋季更新
  • 修改linux启动项
  • win8.1卸载软件在哪里
  • linux使用mv命令,结果文件不见了
  • win10局域网无法上网
  • linux系统如何安装软件包
  • cocos2dx3.4 Menu
  • textureformat
  • mac vscode opengl
  • 经典都有什么
  • Node.js中的什么模块是用于处理文件和目录的
  • 获取input输入值
  • 数据库并发操作主要解决哪三个问题,基本方法是什么
  • django 表单
  • js日期格式转换
  • 公益性捐赠支出属于什么会计科目
  • 进项税额的抵扣凭证
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设