快速玩转Yolov5目标检测—没有好的显卡也能玩(二)

news/2024/5/17 5:46:35/文章来源:https://blog.csdn.net/chzhe/article/details/127145482

        上篇  快速玩转Yolov5目标检测—没有好的显卡也能玩(一) 已经将YoloV5在我的笔记本电脑上快速跑起来了,因为电脑显卡一般,所以运行的CPU版本,从推理结果来看,耗时还是蛮高的,如下图,平均每帧0.45秒左右:

abc2fbbc5fb47746c9c10ff7cecd2ffe.png

理论上这已经能满足很多场景下的需求了,比如明火报警、不带安全帽报警等等,不过还是想试下在GPU下的推理表现,并且后面还想继续玩下训练自己的检测模型。

下面就详细说说整个躺坑的过程,过程中也让我找到了一种在手头没有好的显卡的情况下如何能够比较快速低成本得到好显卡的方法。

一、先了解了下显卡的基本知识  

 

破产之选:GTX 1050TI(4GB),我的显卡:NVIDIA NVS 5400M  600MHz  2GB,看来已经严重过时了-_-。

 二、在我的笔记本上尝试下GPU版本

        NVS 5400M 好在还支持CUDA的,就算无法满足训练的需求,能加速下推理速度也是不错的,所以还是决定试一下。

1.进入YoloV5虚拟环境,安装GPU版本的 pytorch 

conda activate yolov5   #进入yolov5虚拟环境
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch  #安装GPU版pytorch
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

运气不错一次安装成功:

  

 2.查看GPU 是否可用 

python
import torch
torch.cuda.is_available()

执行第二步时报错:

  

 按照提示调整了系统的虚拟内存配置:

  

 继续运行提示GPU不可用:

  

按照这个提示应该要不显卡驱动过低(或不兼容),要不就是显卡硬件不兼容,尝试更新驱动程序等方法后问题依旧,看来这条路暂时走不通了,得考虑其他的方法了。

三、低成本快速用上好的显卡

       上文我们说到运行深度学习建议最低的显卡: GTX 1050TI ,从京东上来看至少¥1500+了,加上其他硬件只为了测试一下YoloV5 采购一台PC成本有点高。

       至此此事暂时无解搁置了几天,一次无意中了解到,原来可以购买远程的GPU云服务器,立马开始研究,对比了几家云服务器厂家,最终决定使用腾讯云的GPU服务器,主要原因:便宜!

1.进入腾讯云,新建服务器实例,选择“按量计费”,地区可选择“广州”,“上海”或者“成都”,我选择的“成都”:

  

2.在机型列选择“GPU机型”,在下方就可以看到有比较便宜的按小时计费的GPU服务器:

  

最便宜的3元多,还有7元多的,不论是显卡,CPU还是内存整体配置还是非常不错的,几块钱1个小时的费用从测试的需求来讲相比购买同等配置的物理PC算是非常便宜了。

3.这里需要注意了,我购买的是7.8元的这台服务器(1颗NVIDIA T4),3元的服务器(1/4 颗 NVIDIA T4)无论怎么尝试都无法启用pytorch的GPU模式,猜测很可能是因为共享了同颗GPU导致的。
下面的操作系统选择windows2019,磁盘空间150GB,宽带按量计费:

  

连上服务器,终于见到了大名鼎鼎的
NVIDIA TESLA T4 深度学习显卡了:

  

4.跟之前的方法一样搭建起YoloV5 GPU的运行环境。

5.验证GPU,成功!

  

6.运行推理:

python detect.py --weights="weights/yolov5s.pt" --source  http://live1.wuhubtv.com/channel1/sd/live.m3u8

启动成功,显卡型号和显存:

  

可以看到平均推理耗时已经低于0.01秒了: 

   

 CPU占用:

  

 总结:

        至此,通过采用云GPU服务器的方式快速低成本的用上了高性能的显卡,而且这个方案可以根据项目的实际情况动态扩容或缩减硬件配置,在项目规模不大,这个方案是比较不错的选择。

       另外,记得用完服务器后及时销毁服务器!

       下一篇我们继续聊聊如何训练自己的目标检测模型!

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

03 NLP-神经网络基础常识复习2-计算图(乘法节点,分支节点,Repeat节点,Sum节点,MatMul节点)

下面,我们将研究误差反向传播法。不过在此之前,作为准备工作,我们先来介绍一下计算图的相关内容。计算图是计算过程的图形表示。所示为计算图的一个例子 计算图通过节点和箭头来表示。这里,“”表示加法,变量x和y写在各…

【流放之路闪电打击开荒攻略】

重点1:每次攻击杀1群白怪 重点2:地图区域等级-4《角色等级《地图区域等级2 重点3:非boss战斗不死亡 重点4:对下阶段成长有目标,搜集装备 国际服网址 G(green)R(red)B&am…

SSTI基础知识

我们用如下环境进行讲解(flask-jinja2):from flask import Flask from flask import render_template from flask import request from flask import render_template_string app = Flask(__name__) @app.route(/) def index():code = request.args.get(id)template = <h3&…

【Pandas总结】第九节 Pandas_累计与分组 pd.groupby()

文章目录一、数据准备二、累计值计算2.1 df.describe()2.2 常用统计值三、分组 pd.groupby()四、更多的使用方法aggregate(),filter(),transform(),apply()4.1 aggregate()4.2 filter()4.3 transform()4.4 apply()在对较大数据进行分析时&#xff0c;有一项最基本的工作就是&am…

2022-09-18-事务机制与锁

事务机制与锁 事务ACID特性(4大特性):原子性;一致性;隔离性;持久性。事务隔离性(四大隔离级别):读未提交;读已提交;可重复读;串行。脏读:读到了别的事务还没有提交,可能随时会被回滚掉的,有可能不存在的数据,这叫做脏读。 可重复读:我第一次查到的数据,我之后…

【选择】选择排序、堆排序(大根堆【升序】,小根堆【降序】)

简单选择排序 思想&#xff1a;默认0号位&#xff0c;定义为min&#xff0c;再从第二位起&#xff0c;遍历所有&#xff0c;找到一个更小的&#xff0c;把下标赋给min&#xff0c;遍历结束&#xff0c;如果当前i下标的值不是min&#xff0c;则说明min更新&#xff0c;有更小的…

【牛客-算法】 NC48 在旋转过的有序数组中寻找目标值

文章目录&#x1f6a9; 前言1.题目描述2.算法设计思路3.算法实现bug记录&#x1f9ed; 遇到问题&#xff08;可跳过&#xff09;&#x1f33b; 写在前面我最初的通过代码&#xff08;C语言&#xff09;4.运行结果5.小结&#x1f525; 该专栏作为算法题笔记&#xff0c;记录算法…

Bert在fine-tune训练时的技巧:①冻结部分层参数、②weight-decay (L2正则化)、③warmup_proportion、④

作为一个NLPer&#xff0c;bert应该是会经常用到的一个模型了。但bert可调参数很多&#xff0c;一些技巧也很多&#xff0c;比如加上weight-decay, layer初始化、冻结参数、只优化部分层参数等等&#xff0c;方法太多了&#xff0c;每次都会纠结该怎么样去finetune&#xff0c;…

打印数组的所有子集

打印数组的所有子集 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;打印数组的所有子集 CSDN&#xff1a;打印数组的所有子集 无重复值情况 题目描述见: LeetCode 78. Subsets 主要思路 定义递归函数 void p(int[] arr, int i, LinkedList<Integer…

【数据结构与算法】深度理解队列(上)

✨hello&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f68e;&#x1f68e;系列专栏&#xff1a;【数据结构与算法】 &#x1f680;&#x1f680;本篇内容:队列从0到1的学习&#xff01; ⛵⛵作者简介&#xff1a;一名双非本科大三在读的科班Java编程小…

11-二叉树-删除

delete(ElementType e)&#xff1a;删除某个值为 e 的结点。实现方法有多种。 按添加结点的规则&#xff0c;小于根结点的放在左边&#xff0c;大于等于根结点的放在右边。b 小于 c 中任意一个子结点&#xff0c;只能放在 c 中最小的一个结点 e 的左子结点下。 除 e 外&#x…

Git基础操作

拉取代码直接clone,复制远程仓库文件夹 git clone git@gitee.com:chen-LinQiang/my-notes.git 在已有仓库文件夹中拉代码 # 初始化 git init # 关联远程仓库 git remote add origin git@gitee.com:chen-LinQiang/my-notes.git # 切换到本地主分支 git checkout master # 若报错…

SpringBoot员工管理的项目——SpringBoot首页定制的操作和国际编码操作(课时十五)

SpringBoot员工管理的项目——SpringBoot后台数据库的搭建(课时十四)_星辰镜的博客-CSDN博客 上篇文章的的文章路径 读者可以回看 有些内容在这里不在说明 本博文完成的两个功能: 利用 Thymeleaf模板引擎完成员工管理系统的的首页定制 国际化编码格式操作 <!--Thymeleaf 说…

计算机网络——媒体接入控制

&#x1f49f;&#x1f49f;前言 ​ 友友们大家好&#xff0c;我是你们的小王同学&#x1f617;&#x1f617; 今天给大家打来的是 计算机网络——媒体接入控制 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞&#x1f44d; 收藏⭐ 评论&#x1f4c4; 小王…

20、DQL(编写顺序和执行顺序)

CSDN话题挑战赛第2期 参赛话题&#xff1a;学习笔记 DQL&#xff08;编写顺序和执行顺序&#xff09; 执行顺序&#xff1a; 1、from&#xff08;from 查什么表是第一&#xff09; 2、where 3、group by 和 having 4、select 5、order by&#xff08;你很与众不同哈&…

Promise 及其基于 Typescript 的实现

Promise 的概念、用法与实现作者&#xff1a; jcLee95 邮箱 &#xff1a;291148484163.com CSDN 主页&#xff1a;https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/121506948 相关文章&…

APP攻防

信息收集 APP-外在抓包-Fd&茶杯&BurpAPP-外在封包-封包监听工具APP-内在提取-AppInfoScannerAPP-内在搜索-反编译载入IDEAAPP-资源提取-安装包&资源文件APP-框架使用-Xposed&JustTrustMe fiddler 1、安装证书 然后设置-WLAN-高级设置-安装证书-安装FidderRo…

【C语言】字符+字符串函数精讲

前言 ● 从我们第一个C程序——Hello world 的诞生&#xff0c;到字符串的拷贝、比较等各种操作的实现。从中不难发现&#xff1a;我们在处理C语言时对字符和字符串的处理很是频繁&#xff0c;因此学习字符及字符串的各种操作函数尤显其必要性。 ● C语言本身是没有字符串类型的…

SpringBoot项目中计量单位与进制转换问题解决措施及数据校验怎么操作

写在前面&#xff1a; 继续记录自己的SpringBoot学习之旅&#xff0c;这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客&#xff0c;详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用&#xff01; 3.2 配置高级 3.2.1 ConfigurationProperties注解 …

【小程序从0到1】小程序条件渲染|列表渲染

欢迎来到我的博客 &#x1f4d4;博主是一名大学在读本科生&#xff0c;主要学习方向是前端。 &#x1f36d;目前已经更新了【Vue】、【React–从基础到实战】、【TypeScript】等等系列专栏 &#x1f6e0;目前正在学习的是&#x1f525;React/小程序React/小程序React/小程序&am…