【论文】YOLOv7运行train.py和test.py时,打印不出来计算量GFLOPs解决方法

news2024/11/27 10:41:30

目录

  • 前提
  • 案例
  • 解决步骤
  • 运行方式
  • 打印效果

前提

我在AutoDL云服务器上,会运行失败,不晓得为啥,我感觉可能是CUDA版本的问题,CUDA版本低了就会没有那么深的计算量吧

  • AutoDL上(显卡RTX3090,4GB)安装的torch版本是1.10.0+cu111
  • 本地笔记本电脑上(显卡RTX3050,4GB)安装的torch版本是1.10.0+cu113

案例

在这里插入图片描述

解决步骤

  • 前言train.py或者test.py打印出来的parameters、GFLOPS数值往往是不相同的,还有种打印这两个数值的方式是运行models/yolo.py。所以这里共3种方式打印,只要所有改进模型选用的打印方式一致就可以。
  • 因为我在运行train.py或者test.py时,有时候都会遇到不显示GFLOPs的情况,但是论文中又需要对比这个参数,因此撰写此博客的解决方案是在models/yolo.py中更改的
  • 小建议:当遇到跟我相同情况的同学,就可以采用此博客方式,统一调用models/yolo.py来打印这两个值。已验证,在不同机器上,此方式打印出来的值是一样的

#------------------------分割线-----------------------------#

其实可以不加我下面这段代码了,直接运行models/yolo.py即可(因为打印的值是一样的),运行方式和效果倒是可以继续看下去

❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

⭐在models/yolo.py中按下快捷键Ctrl+F搜索model.train()定位过去,然后添加如下代码即可:

    # -------------------打印参数量|计算量---------------- #
    from thop import profile
    img = torch.rand(1, 3, 640, 640).to(device)
    flops, params = profile(model, (img,))
    print(f'params: {params}, GFLOPs: {2 * flops}')   # 注意这里的flops要×2,才跟yolo打印出来的值对应得上
    print('params: %.2f M, GFLOPs: %.1f B' % (params / 1e6, 2 * flops / 1e9))   # 注意这里的flops要×2,才跟yolo打印出来的值对应得上
    # -------------------打印参数量|计算量---------------- #

上图中的换算公式,可参考博客:【论文】参数量Parameters和每秒浮点运算次数FLOPs的单位是多少?答:Paramenter/M,FLOPs/B

在这里插入图片描述

运行方式

  • 可以直接在PyCharm中运行yolo.py文件(注意指定cfg参数,最好是绝对路径
  • 也可以在终端里面键入命令:python models/yolo.py --cfg /root/autodl-fs/yolov7-main/cfg/training/yolov7.yaml

打印效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/650987.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java的网络编程

一、网络编程的三要素 IP、端口号、协议。 特殊IP地址127.0.0.1,也可以是localhost,是回送地址也称回环地址,也称本机IP,永远只会寻找当前所在本机。 常见cmd命令: ipconfig:查看本机IP地址; ping:检查网络…

Innovus: dbGet 快速学习教程

dbGet是innovus/encounter工具自带的"database access command"命令中的一部分,它几乎可以用来获取设计相关的一切信息。 输入dbGet 按[Tab]键,能看到三个选项,分别是head / top /selected。这三个选项所代表的意义如下: head --…

ubuntu 22.04安装mysql 8.0与避坑指南

MySQL 是一个开源数据库管理系统,可作为流行的 LAMP(Linux、Apache、MySQL、PHP/Python/Perl)堆栈的一部分安装。 它实现了关系模型并使用结构化查询语言( SQL)来管理其数据。 本教程将介绍如何在 Ubuntu 22.04 服务器…

appium+python在Android端的环境配置

一、安装配置JDK 一、安装环境 1、本机系统:Windows 10(64位) 2、JDK版本:1.8(64位) 二、下载安装 1、JDK和JRE简介 Java环境分JDK和JRE ,JDK就是Java Development Kit。简单的说JDK是面向…

JMeter安装图文及入门教程,(附视频教程)

目录 一、JMeter介绍 二、下载配置安装 三、JMeter入门压测实例 总结: 一、JMeter介绍 JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。它可以用于测试静…

Go语言并发之context标准库

1、Go语言并发之context标准库 Go中的 goroutine 之间没有父与子的关系,也就没有所谓子进程退出后的通知机制,多个 goroutine 都是平行地 被调度,多个 goroutine 如何协作工作涉及通信、同步、通知和退出四个方面。 通信:chan 通…

ResNet

论文信息 论文名称:Deep Residual Learning for Image Recognition 论文地址:https://arxiv.org/pdf/1512.03385.pdf 发表期刊:CVPR 发表年份:2016 主要问题 在引言中作者提出了一个问题:训练一个更好的网络是否像堆…

这个网站,多希望你早点知道,越早越好!

这是一个有趣、神奇的个人博客网站。 这是一个马斯克经常上的网站,而且马斯克还在推特上关注了这个网站的账号。 网站地址:https://waitbutwhy.com/ 这个网站上的内容并不多,网站2013年创建的,至今已有10年,一共才产出…

python爬虫工程师,如何从零开始部署Scrapyd+Feapder+Gerapy?

突然被告知要连着上整整十一天的班,有一点点累,简单更新一下内容吧,水个积分 关注公众号:python技术训练营,精选优质文档,好玩的项目 内容: 1.面试专题几十个大厂面试题 2.入门基础教程 3.11模块…

活动邀请函五秒钟下载即用

在日常中,人们都是以纸质的邀请函发送给被邀请者,不仅需要花费大量的精力和时间去书写发送活动邀请函,还存在着被邀请人没有及时收到活动邀请函而错过参与的时间等。而这样只需制作一份就可以全网分享,用户短时间就能收到活动邀请…

可变参数列表

"多少人都,生来纯洁完美,心底从不染漆黑。" 我们想要实现一个函数,这个函数的功能是返回一个整形的最大值。 emm,似乎有那点味道。但这应用场景似乎很受限制,因为这个函数比较的有效区间,只能装下…

Pycharm远程开发之全局pip,激活远程虚拟环境pip,以及pip的--user选项

前言 最近需要部署一下生成对抗网络的开发环境,我自己的笔记本没有带显卡,想到实验室的服务器有带显卡索性就用实验室服务器的环境开发,通过pycharm的远程开发功能连接到服务器,本来以为轻轻松松就可以开始写代码了,结…

springcloud整合nacos

1.订单服务(order) 1.1 安装nocas Nacos 快速开始 --注意:nacos 我的是 nacos-server-1.4.1.tar.gz 1.2 新建order-nacos 模块 1.3 修改pom文件 添加 nacos 依赖 1.4 配置文件添加 nacos 地址 1.5 创建启动类 使用 RestTemplate 方式调用服…

字符设备驱动内部实现

只要文件存在,就会有唯一对应的inode号,且相应的会存在一个struct inode结构体.,在应用层通过open()打开一个设备文件,会对应产生一个inode号,通过inode号可以找到文件的inode结构体,inode结构体…

中介者模式(二十一)

相信自己,请一定要相信自己 上一章简单介绍了观察者模式(二十), 如果没有看过, 请观看上一章 一. 中介者模式 引用 菜鸟教程里面中介者模式介绍: https://www.runoob.com/design-pattern/mediator-pattern.html 中介者模式(Mediator Pattern&#xff…

paddlespeech http服务解决输出无符号

1.前情提要 下载paddlespeech官网代码并运行http服务进行中文识别时,会发现选择某些模型(我用的是conformer_wenetspeech),是别的结果为一串文字,没有标点,效果如下: 经过调用padddlespeech相关…

【裸机开发】使用汇编清除 .bss 段

目录 1、为什么要清除 .bss 段 2、使用汇编清除 .bss 段 1、为什么要清除 .bss 段 .bss 段保存的是 未被初始化 或者 初始化为0 的全局/静态变量。在编译器看来,这些东西是多余的,实际并不会给他们分配空间。因此,编译生成目标文件的时候&…

38.SpringCloud—注册中心(eureka/nacos)、负载均衡Ribbon

目录 一、SpringCloud。 (1)认识微服务。 (1.1)单体架构与分布式架构(微服务)。 (1.2)微服务技术对比。 (1.3)SpringCloud。 (2&#xff09…

linux创建静态库

创建一个目录,比如今天是6月13号,就mkdir 0613(创建目录0613),然后cd 0613(进入0613目录) 1.创建C语言库函数文件myheight.c vi myhight.c 2.创建C语言函数文件myweight.c vi myweight.c 3.创建C语言函数文件age.c vi myage.c 4…

代码审计-Java项目JDBCMybatisHibernate注入预编译写法

文章目录 Javaweb-数据库操作-模式&写法&预编译等环境搭建JDBC 注入分析关于预编译 Mybatis 注入分析Hibernate 注入分析总结: Javaweb-代码审计SQL注入-INXEDU在线网校 Javaweb-数据库操作-模式&写法&预编译等 环境搭建 VulDemo审计源码百度云 在…