Windows系统部署YOLOv5 v6.1版本的训练与推理环境保姆级教程

文章目录

  • 一· 概述
  • 二· 依赖环境(`prerequisites`)
    • 2.1 硬件环境
    • 2.2 软件环境
  • 三· 环境安装
    • 3.1 创建并激活虚拟环境
    • 3.2 安装`Pytorch`与`torchvision`
    • 3.3 校验`Pytorch`安装
    • 3.4 下载 `YOLOv5` `v6.1` 源码
    • 3.5 安装 `YOLOv5` 依赖
    • 3.6 下载预训练模型
    • 3.7 安装其他依赖
    • 3.8 测试环境安装
    • 3.9 测试训练流程
  • 四· 参考链接

一· 概述

本文档主要记录使用工程源代码,部署YOLOv5训练环境以及测试环境的过程,主要包括以下内容:

  1. YOLOv5对应版本的源码下载
  2. Pytorch的适配版本安装与测试
  3. YOLOv5源码的依赖安装与测试
  4. 其他依赖的版本调整与测试
  5. 字体文件、预训练模型的下载
  6. 训练流程的测试

注:如果需要快速安装推理环境(不需要训练),参考[[YOLOv5快速推理方法]]

二· 依赖环境(prerequisites)

本文档主要记录的是 YOLOv5 v6.1 版本的环境部署与测试,使用 Anacondaminiconda 进行虚拟环境和包管理器,因此在执行安装之前,需要确认机器的预安装环境。

2.1 硬件环境

  • GPU : NVIDIA GeForce GTX2060
  • RAM : 16GB
  • CPU : Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz
  • ROM : 512GB SSD

注: 一般情况下,训练都会在GPU上进行,因此GPU的性能对训练速度有较大的影响。确保本地已安装NVIDIA独立显卡,否则训练耗时会非常长。

2.2 软件环境

  • 操作系统 : Windows 10
  • Anaconda3miniconda3
  • Python : 3.8+
  • NVIDIA驱动 : latest
  • CUDA : 11.2
  • cuDNN : 8.2.1

三· 环境安装

注: 确保上述软硬件环境已经安装完毕,不在赘述。

3.1 创建并激活虚拟环境

# 创建虚拟环境
conda create -n yolo python=3.8 -y# 激活虚拟环境
conda activate yolo

3.2 安装Pytorchtorchvision

访问Pytorch官方网站,查询符合本地硬件配置与软件环境安装指令,这里选择 适配 CUDA 11.3Pytorch v1.12.1,安装指令如下:

# CUDA 11.3
conda install pytorch==1.8.1 torchvision==0.9.1 torchaudio==0.8.1 cudatoolkit=11.3 -c pytorch -c conda-forge -y
# CUDA 11.1
pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

注: 考虑到版本兼容性问题,本文档中选择适配CUDA 11.3Pytorch v1.8.1版本. 没有选择最新版。

注: Pytorch官方安装文档中,v1.8+ 只提供了适配 11.811.711.611.310.2CUDA 版本, 通过查询部分资料得知,CUDA v11版本中,部分小版本向前兼容,表现形式为版本号标为CUDA v11.x,经过测试,Pytorch v1.8.1 适配 CUDA 11.3 版本可以正常使用。

3.3 校验Pytorch安装

python -c "import torch; print(torch.__version__)"

环境安装正确,则输出 1.8.1+cu111

python -c "import torch; print(torch.cuda.is_available())"

Pytorch 安装完成,且能够加载 GPUCUDA ,则输出True, 否则输出 False

1200

注:如果校验失败,则重新按照 [[#3.2 安装Pytorchtorchvision]] 中的内容,更换一种方式重新安装,例如,将 conda 安装方式更换为 pip 安装方式。

3.4 下载 YOLOv5 v6.1 源码

可直接通过 git 命令,下载指定 v6.1版本的 YOLOv5 源码,如下所示:

git clone -b v6.1  https://github.com/ultralytics/yolov5.git

源代码下载完成后,会回滚到 v6.1 版本的代码。如下图所示:
1000

或通过官方网站下载源码压缩包,解压到本地。地址:YOLOv5

1000

对比上述图片,可以看到,对应提交的记录号码是一致的。

3.5 安装 YOLOv5 依赖

进入 YOLOv5 源码目录,执行以下命令,安装依赖:

cd yolov5# 安装依赖
pip install -r requirements.txt

等待安装完成,如下图所示:

1200

3.6 下载预训练模型

通过访问github地址,定位到对应的 v6.1 标签的release版本,下载预训练模型,文件链接地址 , 如下图所示:

1000

注 :一定要下载与源代码版本号对应的预训练模型,避免因模型结构不一致导致加载时报错。

3.7 安装其他依赖

为避免报错 ImportError: DLL load failed while importing _imaging: 找不到指定的模块。 ,需要重新安装 Pillow 依赖,如下所示:

pip install Pillow==9.5.0

为避免后续训练过程中,因为 numpy 版本不兼容导致 API 调用报错,需要重新安装 numpy 1.20.3 依赖,如下所示:

 pip install numpy==1.20.3 --force-reinstall

3.8 测试环境安装

通过运行 detect.py 脚本,对项目自带的测试图片(位于 data/images 路径),测试环境安装是否正确,如下所示:

python detect.py --weights yolov5s.pt --img 640 --conf 0.25 --source data/images/bus.jpg

运行成功后,会输出检测结果,如下图所示:
1000

打开位于 runs/detect/exp2 路径保存的图片,可以看到检测结果,如下图所示:
800

3.9 测试训练流程

通过运行 train.py 脚本,对项目自带的测试数据集(位于 data/coco128 路径),测试训练流程是否正确,如下所示:

python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt

运行指令后,会自动下载 COCO128 数据集,然后开始训练,如下图所示:
800

如果因网速问题,下载失败,可以手动下载数据集,然后解压到与 yolov5 的统计文件夹 datasets 目录下即可,如下所示:

datasets
|--coco128
|  |--images
|  |--labels
yolov5
|--data
.
.
.

训练正式启动后,每个 epoch 会有进度条显示当前的训练进度,如下图所示:
1000

至此,YOLOv5 v6.1 版本的源代码方式安装的训练环境已完成.

四· 参考链接

  • [YOLOv5 GitHub](https://
  • Pytorch 安装指南
  • ultralytics docs

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

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

相关文章

jupyter notebook更改位置

1.找到jupyer的配置文件 一般在c盘用户的.jupter文件夹下 2. 用记事本打开这个配置文件,定位到c.NotebookApp.notebook_dir /path_to_your_directory 替换你的位置 3.找到jupyer图标的位置,打开属性 添加要存放的位置在目标文件的末尾,重新…

一个全面了解Xilinx FPGA IP核的窗口:《Xilinx系列FPGA芯片IP核详解》(可下载)

随着摩尔定律的逐渐放缓,传统的芯片设计方法面临着越来越多的挑战。而FPGA以其并行处理能力和可编程性,为解决复杂问题提供了新的途径。它允许设计者在同一个芯片上实现多种不同的功能模块,极大地提高了资源的利用率和系统的综合性能。 FPGA…

HCIA-ARP

ARP的由来 ARP这一种协议它会是在我们HCIA中第一个需要完全掌握的一个协议,不然对于数据通讯来说大家都会一直觉得很绕圈 协议栈,网线,网卡,它们组成了我们最小的数据通信的小脉络注:可以了解ARP攻击(冒充访…

文献解读-群体基因组第二期|《中国人群中PAX2新生突变的检测及表型分析:一项单中心研究》

关键词:应用遗传流行病学;群体测序;群体基因组;基因组变异检测; 文献简介 标题(英文):Detection of De Novo PAX2 Variants and Phenotypes in Chinese Population: A Single-Cente…

new CCDIKSolver( OOI.kira, iks ); // 创建逆运动学求解器

demo案例 new CCDIKSolver(OOI.kira, iks); 在使用某个特定的库或框架来创建一个逆运动学(Inverse Kinematics, IK)求解器实例。逆运动学在机器人学、动画和计算机图形学等领域中非常重要,它用于根据期望的末端执行器(如机器人的…

建设现代智能工业-智能化、数字化、自动化节能减排

建设现代智能工业-智能化节能减排 遵循“一体化”能源管理(Integrated Energy Management)的设计宗旨,集成城市各领域(如工业.交通、建筑等)的能源生产和消费信息,面向城市政府、企业、公众三类实体,提供“一体化”的综合能源管理…

uniapp h5项目切换导航栏及动态渲染按钮颜色

1.效果图 2.html,动态渲染按钮样式---三元判断 <!-- 切换栏 --><view class"statusList"><block v-for"(item,index) in list" :key"index"><view class"swiper-tab-list" :class"current item.id?activ…

CEEMDAN +组合预测模型(CNN-Transfromer + XGBoost)

注意&#xff1a;本模型继续加入 组合预测模型全家桶 中&#xff0c;之前购买的同学请及时更新下载! 往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 VMD CEEMDAN 二次分解&#xff0c;Transformer-BiGRU预测模…

【JAVA WEB实用与优化技巧】如何自己封装一个自定义UI的Swagger组件,包含Swagger如何处理JWT无状态鉴权自动TOKEN获取

目录 一、Swagger 简介1. 什么是 Swagger&#xff1f;2. 如何使用 Swagger3. Springboot 中swagger的使用示例1. maven 引入安装2. java配置 二、Swagger UI存在的缺点1.不够方便直观2.请求的参数没有缓存3.不够美观4.如果是JWT 无状态登录&#xff0c;Swagger使用起来就没有那…

STL-stack的使用及其模拟实现

在C标准库中&#xff0c;stack是一种容器适配器&#xff0c;它以后进先出的方式组织数据&#xff0c;其删除只能从容器的栈顶进行元素的插入与取出操作。 stack的使用 stack的构造函数 stack的成员函数 empty&#xff1a;判断栈是否为空back&#xff1a;返回当前栈中元素的数量…

推荐一个 Java 开源企业级新能源汽车智能共享充电桩管理平台

文末可获取 Orise 平台源码 01 Orise 智能充电桩管理平台 奥升( Orise ) 新能源汽车充电桩管理 Saas 云平台是一个集充电设备管理、用户充电管理、线上小程序内容管理于一体的综合管理平台。Orise充电桩平台支持高并发业务、业务动态伸缩、桩通信负载均衡&#xff0c;通过Docke…

Golang项目代码组织架构实践

Golang在项目结构上没有强制性规范&#xff0c;虽然这给了开发者很大的自由度&#xff0c;但也需要自己沉淀一套可行的架构。本文介绍了一种项目布局&#xff0c;可以以此为参考设计适合自己的 Golang 项目组织模式。原文: Golang Project Layout Go 有很多强制的或是约定俗成的…

收藏:六款好用的企业防泄密软件推荐

企业数据如同企业的生命线&#xff0c;保护数据安全免遭泄露变得至关重要。 面对日益复杂的网络安全威胁&#xff0c;一套高效的企业防泄密软件成为企业安全架构的基石。 以下是精心挑选的六款企业防泄密软件&#xff0c;它们在数据加密、访问控制、行为监控等方面表现出色&am…

lua vm 常识一: attempt to yield across a C-call boundary 的原因分析

使用 lua 的时候有时候会遇到这样的报错&#xff1a;“attempt to yield across a C-call boundary”。 1. 网络上的解释 可以在网上找到一些关于这个问题的解释。 1.1 解释一 这个 issue&#xff1a;一个关于 yield across a C-call boundary 的问题&#xff0c;云风的解释是…

轮廓系数(Average silhouette) | 最佳聚类数的判定

1.最佳分类个数 # 辅助确定最佳聚类数 4.7*2.6 factoextra::fviz_nbclust( t(DPAU_2), kmeans, method "silhouette")在2有下降拐点&#xff0c;但是样本较多时分成2类一般意义不大。 在7时也有下降拐点。 2.查看每个分类的轮廓系数 (1) pam k5 library(cluste…

【Paddle】Inplace相关问题:反向传播、影响内存使用和性能

【Paddle】Inplace相关问题&#xff1a;反向传播、影响内存使用和性能 写在最前面inplace 的好处有哪些&#xff1f;能降低计算复杂度吗在反向传播时&#xff0c;Inplace为什么会阻碍呢&#xff1f;“计算图的完整性受损”表达有误原地操作 sin_()为什么原地操作会阻碍反向传播…

活动会议邀请函制作易企秀源码系统 清爽的画面轻轻滑动自动翻页 带完整的前后端搭建教程

系统概述 在当今数字化时代&#xff0c;活动会议的组织和宣传变得至关重要。为了满足这一需求&#xff0c;活动会议邀请函制作易企秀源码系统应运而生。它不仅为用户提供了一个便捷、高效的工具&#xff0c;还具备一系列令人瞩目的特色功能&#xff0c;为活动会议的成功举办提…

Ubuntu22.04设置程序崩溃产生Core文件

Ubuntu22.04设置程序崩溃产生Core文件 文章目录 Ubuntu22.04设置程序崩溃产生Core文件摘要Ubuntu 生成Core文件配置1. 检查 core 文件大小限制2. 设置 core 文件大小限制3. 配置 core 文件命名和存储路径4. 重启系统或重新加载配置5. 测试配置 关键字&#xff1a; Ubuntu、 C…

CSS浮动详细教学(CSS从入门到精通学习第四天)

css第04天 一、其他样式 1、圆角边框 在 CSS3 中&#xff0c;新增了圆角边框样式&#xff0c;这样我们的盒子就可以变圆角了。 border-radius 属性用于设置元素的外边框圆角。 语法&#xff1a; border-radius:length; 参数值可以为数值或百分比的形式如果是正方形&…

RTT UART设备框架学习

UART简介 UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;通用异步收发传输器&#xff0c;UART 作为异步串口通信协议的一种&#xff0c;工作原理是将传输数据的每个字符一位接一位地传输。是在应用程序开发过程中使用频率最高的数据总线。 UART串…