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训练环境以及测试环境的过程,主要包括以下内容:
YOLOv5对应版本的源码下载Pytorch的适配版本安装与测试YOLOv5源码的依赖安装与测试- 其他依赖的版本调整与测试
- 字体文件、预训练模型的下载
- 训练流程的测试
注:如果需要快速安装推理环境(不需要训练),参考[[YOLOv5快速推理方法]]
二· 依赖环境(prerequisites)
本文档主要记录的是 YOLOv5 v6.1 版本的环境部署与测试,使用 Anaconda 或 miniconda 进行虚拟环境和包管理器,因此在执行安装之前,需要确认机器的预安装环境。
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 Anaconda3或miniconda3Python: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 安装Pytorch与torchvision
访问Pytorch官方网站,查询符合本地硬件配置与软件环境安装指令,这里选择 适配 CUDA 11.3的Pytorch 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.3的Pytorch v1.8.1版本. 没有选择最新版。
注:
Pytorch官方安装文档中,v1.8+只提供了适配11.8、11.7、11.6、11.3和10.2的CUDA版本, 通过查询部分资料得知,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 安装完成,且能够加载 GPU 和 CUDA ,则输出True, 否则输出 False

注:如果校验失败,则重新按照 [[#3.2 安装
Pytorch与torchvision]] 中的内容,更换一种方式重新安装,例如,将conda安装方式更换为pip安装方式。
3.4 下载 YOLOv5 v6.1 源码
可直接通过 git 命令,下载指定 v6.1版本的 YOLOv5 源码,如下所示:
git clone -b v6.1 https://github.com/ultralytics/yolov5.git
源代码下载完成后,会回滚到 v6.1 版本的代码。如下图所示:

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

对比上述图片,可以看到,对应提交的记录号码是一致的。
3.5 安装 YOLOv5 依赖
进入 YOLOv5 源码目录,执行以下命令,安装依赖:
cd yolov5# 安装依赖
pip install -r requirements.txt
等待安装完成,如下图所示:

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

注 :一定要下载与源代码版本号对应的预训练模型,避免因模型结构不一致导致加载时报错。
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
运行成功后,会输出检测结果,如下图所示:

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

3.9 测试训练流程
通过运行 train.py 脚本,对项目自带的测试数据集(位于 data/coco128 路径),测试训练流程是否正确,如下所示:
python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt
运行指令后,会自动下载 COCO128 数据集,然后开始训练,如下图所示:

如果因网速问题,下载失败,可以手动下载数据集,然后解压到与 yolov5 的统计文件夹 datasets 目录下即可,如下所示:
datasets
|--coco128
| |--images
| |--labels
yolov5
|--data
.
.
.
训练正式启动后,每个 epoch 会有进度条显示当前的训练进度,如下图所示:

至此,YOLOv5 v6.1 版本的源代码方式安装的训练环境已完成.
四· 参考链接
- [YOLOv5 GitHub](https://
- Pytorch 安装指南
- ultralytics docs
相关文章:
Windows系统部署YOLOv5 v6.1版本的训练与推理环境保姆级教程
文章目录 一 概述二 依赖环境(prerequisites)2.1 硬件环境2.2 软件环境 三 环境安装3.1 创建并激活虚拟环境3.2 安装Pytorch与torchvision3.3 校验Pytorch安装3.4 下载 YOLOv5 v6.1 源码3.5 安装 YOLOv5 依赖3.6 下载预训练模型3.7 安装其他依赖3.8 测试环境安装3.9 测试训练流…...
[RK3588-Android12] 关于EDP屏外设为Panel,不支持HPD的配置
问题描述 直接附上dts配置,也可自行查看先关文档RKDocs\common\display\Rockchip_RK3588_User_Guide_eDP_CN.pdf 解决方案: // EDP屏参数panel-edp {compatible "simple-panel";// 屏en脚 自行根据原理图配置enable-gpios <&gpioX R…...
142.栈和队列:用栈实现队列(力扣)
题目描述 代码解决 class MyQueue { public:stack<int> stIn; // 输入栈,用于push操作stack<int> stOut; // 输出栈,用于pop和peek操作MyQueue() {}void push(int x) {stIn.push(x); // 将元素压入输入栈}int pop() {// 如果输出栈为空&…...
乡村振兴的乡村产业创新发展:培育乡村新兴产业,打造乡村产业新名片,促进乡村经济多元化发展
目录 一、引言 二、乡村产业创新发展的必要性 (一)适应新时代发展要求 (二)满足消费升级需求 (三)促进农民增收致富 三、培育乡村新兴产业策略 (一)加强科技创新引领 &#…...
数据库|基于T-SQL创建数据库
哈喽,你好啊,我是雷工! SQL Server用于操作数据库的编程语言为Transaction-SQL,简称T-SQL。 本节学习基于T-SQL创建数据库。以下为学习笔记。 01 打开新建查询 首先连接上数据库,点击【新建查询】打开新建查询窗口, …...
智能家居ZigBee网关选型定制指南:主控,操作系统,天线设计,助力IoT开发者
随着科技的发展和人们生活水平的提高,智能家居以其便捷、舒适、安全等特点,逐渐走进千家万户,成为家装消费品换新升级的重要方向。在智能家居系统中,网关扮演着中枢控制器的角色,负责将各种设备连接到互联网上…...
QT截图程序,可多屏幕截图二,增加调整截图区域功能
上一篇QT截图程序,可多屏幕截图只是实现了最基本的截图功能,虽然能用但是缺点也有,没办法更改选中的区域,这在实际使用时不太方便。这篇增加了这个功能。先看看效果。 实现代码为: 头文件 #ifndef MASKWIDGET_H #de…...
开源浪潮与闭源堡垒:大模型未来的双重奏
从数据隐私、商业应用和社区参与等方面来看,开源大模型和闭源大模型各有优劣势。开源模型在透明度、社区协作和成本效益方面具有优势,而闭源模型在安全性、合规性和商业竞争力方面表现出色。因此,我更倾向于认为,未来的大模型发展…...
postman教程-6-发送delete请求
领取资料,咨询答疑,请➕wei: June__Go 上一小节我们学习了postman发送put请求的方法,本小节我们讲解一下postman发送delete请求的方法。 HTTP DELETE 请求是一种用于删除指定资源的请求方法。在RESTful API 设计中,DELETE 请求…...
java小技能: 数字和字母组合的验证码图片(生成验证码字符并加上噪点,干扰线)
文章目录 引言I 验证码的作用1.1 验证使用计算机的是一个人,而非计算机程序。1.2 提供一个很短的时间窗的一次性密码。II 数字和字母组合的验证码图片2.1 获取验证码图片2.2 生成验证码字符并加上噪点,干扰线see also引言 世界上没有绝对的信息安全,但是有防范得好和坏的分…...
网络故障与排除
一、Router-ID冲突导致OSPF路由环路 路由器收到相同Router-ID的两台设备发送的LSA,所以查看路由表看到的OSPF缺省路由信息就会不断变动。而当C1的缺省路由从C2中学到,C2的缺省路由又从C1中学到时,就形成了路由环路,因此出现路由不…...
Cocos Creator 编辑器的数据绑定详解
Cocos Creator 是一款由 Cocos 平台推出的游戏开发工具,它集成了图形化编辑器、脚本引擎和资源管理器等功能,方便开发者快速地创建游戏。其中,数据绑定是 Cocos Creator 编辑器中非常重要的一个功能,它可以帮助开发者实现页面元素…...
解决Selenium NameError: name ‘By’ is not defined
解决Selenium NameError: name ‘By’ is not defined 文章目录 解决Selenium NameError: name By is not defined背景错误原因解决方法1. 检查导入语句2. 修正拼写和大小写3. 验证Selenium库安装4. 重启IDE或终端5. 检查环境变量 验证总结 背景 在使用Selenium进行Web自动化测…...
创建特定结构的二维数组:技巧与示例
新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、引言:二维数组的奇妙世界 二、方法一:直接初始化 1. 初始化一个…...
React Native 之 BackHandler (二十)
react-native 中的 BackHandler 是一个用于处理 Android 设备上的硬件返回按钮(back button)和 iOS 设备上的手势返回(swipe back gesture)的模块。在 React Native 应用中,当用户按下返回按钮或执行返回手势时&#x…...
一篇文章讲透排序算法之快速排序
前言 本篇博客难度较高,建议在学习过程中先阅读一遍思路、浏览一遍动图,之后研究代码,之后仔细体会思路、体会动图。之后再自己进行实现。 一.快排介绍与思想 快速排序相当于一个对冒泡排序的优化,其大体思路是先在文中选取一个…...
kubernetes-PV与PVC、存储卷
一、PV和PVC详解 当前,存储的方式和种类有很多,并且各种存储的参数也需要非常专业的技术人员才能够了解。在Kubernetes集群中,放了方便我们的使用和管理,Kubernetes提出了PV和PVC的概念,这样Kubernetes集群的管理人员就…...
643. 子数组最大平均数 I
给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。 请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。 任何误差小于 10-5 的答案都将被视为正确答案。 示例 1: 输入:nums [1,12,-5,-6,50,3], k 4 输出ÿ…...
Node性能如何进行监控以及优化?
一、 是什么 Node作为一门服务端语言,性能方面尤为重要,其衡量指标一般有如下: CPU内存I/O网络 CPU 主要分成了两部分: CPU负载:在某个时间段内,占用以及等待CPU的进程总数CPU使用率:CPU时…...
ToList()和ToArray()的区别
以下是具体分析: 1. 返回类型 ToList():返回一个泛型列表 List<T>,其中 T 是列表中元素的类型。 ToArray():返回一个 Object 类型的数组。如果需要特定类型的数组,必须使用重载的 ToArray(T[] a) 方法&#x…...
嵌入式软件架构设计:硬件抽象层实践
嵌入式软件架构设计:建立硬件抽象层的工程实践 1. 嵌入式软件架构概述 1.1 架构设计的必要性 在嵌入式系统开发中,软件架构设计直接影响产品的可维护性、可扩展性和可移植性。良好的架构设计能够: 减少不必要的返工 建立宏观层面的开发规…...
无需编程!DouyinLiveWebFetcher让运营人员轻松实现抖音直播弹幕实时采集
无需编程!DouyinLiveWebFetcher让运营人员轻松实现抖音直播弹幕实时采集 【免费下载链接】DouyinLiveWebFetcher 抖音直播间网页版的弹幕数据抓取(2024最新版本) 项目地址: https://gitcode.com/gh_mirrors/do/DouyinLiveWebFetcher 如…...
QGIS 3.28 保姆级配置指南:从中文界面到高德底图,手把手搞定智驾地图工作流
QGIS 3.28 智能驾驶地图工程师开箱指南:从零构建高精度工作流 刚拿到工牌的智能驾驶地图工程师小李,面对全新的QGIS界面有些手足无措。作为空间数据处理的核心工具,QGIS的配置直接决定了后续高精地图生产的效率与精度。本文将带你完成从软件…...
Flowable 7.x 实战:手把手教你从数据库里捞出BPMN2.0 XML并优雅展示(Vue3 + Spring Boot)
Flowable 7.x 实战:从数据库提取BPMN2.0 XML的工程化实现(Vue3 Spring Boot全链路解析) 在流程引擎的实际应用中,BPMN2.0 XML作为流程定义的标准化载体,其可视化展示能力直接影响开发调试效率。本文将完整演示如何构建…...
Cursor功能增强工具使用指南
Cursor功能增强工具使用指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial request limit. / Too many free t…...
Python气象数据处理实战:用Goff-Gratch公式5分钟搞定露点温度计算
Python气象数据处理实战:用Goff-Gratch公式5分钟搞定露点温度计算 气象数据分析中,露点温度是一个关键指标,它直接反映了空气中的水汽含量。对于天气预报、农业灌溉、工业控制等领域,准确计算露点温度至关重要。本文将带你用Pytho…...
5分钟搞定OpenClaw+GLM-4.7-Flash:星图平台一键部署体验
5分钟搞定OpenClawGLM-4.7-Flash:星图平台一键部署体验 1. 为什么选择云端部署OpenClaw 作为一个长期折腾本地AI部署的技术爱好者,我深知在个人电脑上配置OpenClaw的痛处。从Node.js版本冲突到模型权重下载失败,再到各种依赖库缺失…...
深入解析:高级 Android 开发工程师职位与面试全攻略
引言:移动互联网时代的核心力量 在当今移动互联网蓬勃发展的时代,智能手机已成为人们日常生活中不可或缺的一部分。作为连接用户与数字服务的桥梁,移动应用扮演着至关重要的角色。而在移动应用的生态中,Android 系统凭借其开放性和庞大的用户基础,占据了全球移动操作系统…...
斯坦福邱肖杰:自动化组学发现的可进化多智能体框架
摘要 大型语言模型驱动的自主智能体系统与单细胞生物学的融合,有望推动生物医学发现领域的范式转变。然而,现有生物智能体系统基于单智能体架构构建,要么功能单一、要么过于泛化,仅适用于常规分析。本文介绍1种可进化…...
从南邮实验报告看数据结构:顺序表、链表、二叉树、图,这些实验到底在练什么?
解码数据结构实验:从顺序表到图算法的编程思维进阶之路 当你第一次翻开数据结构实验手册,看到那些关于顺序表、链表、二叉树和图算法的题目时,是否曾困惑过这些看似枯燥的操作练习究竟能带来什么实际价值?南邮的这一系列实验设计绝…...
