当前位置: 首页 > news >正文

YOLO系列环境配置及训练

目录

前言

一、下载所需

1、Anaconda安装

2、NVIDIA 驱动程序安装

3、CUDA安装

4、CUDNN下载及配置

二、环境配置 

1、虚拟环境创建

2、Pytorch安装

3、pycharm环境切换及剩余库的安装

4、YOLO代码的测试及训练配置步骤

(1)测试

(2)数据集准备

(3)开始训练

补充

可能报错及解决:


前言

        为方便整理,一下以最经典的YOLOv5为基准,其他YOLO系列代码亦可参考以下步骤

一、下载所需

1、Anaconda安装

        Anaconda下载地址:Free Download | Anaconda

         正常下载后,我们一路默认安装即可(PS:安装路径可自行选择,为方便下面的路径叙述,本文采用默认安装路径C:\ProgramData\anaconda3),接下来找到系统的环境变量板块,如下:

         进入“环境变量”编辑

        进入系统变量的Path:

        找到Anaconda安装的目录,并将下面四个文件夹的地址录入Path:

确定保存后,我们进入Anaconda Prompt,并输入下方命令检查安装情况:

conda --version

若出现conda及其对应版本,则视为成功:

2、NVIDIA 驱动程序安装

        NVIDIA 驱动程序下载:官方驱动 | NVIDIA

根据电脑配置搜索并下载安装:

安装完毕后,进入Anaconda Prompt 输入,如下指令查看显卡支持的最高CUDA版本:

nvidia-smi

3、CUDA安装

        CUDA下载地址:CUDA Toolkit Archive | NVIDIA Developer

为与后面的Pytorch安装做准备,请务必进入Pytorch官网查看对应CUDA版本要求 

        Pytorch官网:PyTorch

例如上图,我们选择对应的CUDA版本下载: 

 进入后,按照电脑配置依次选择:

下载完成后打开安装包,安装路径选择默认即可,并选择自定义,全选,等待安装完毕:

 

4、CUDNN下载及配置

        CUDNN下载地址:cuDNN Archive | NVIDIA Developer 选择对应的CUDA版本下载 

 下载完成 并 解压缩后,将其如下三个文件夹内的 内容,拷贝一份进CUDA安装目录下的对应文件夹中:

二、环境配置 

1、虚拟环境创建

        进入Anaconda Prompt 输入,如下指令:

conda create --name {自己命名的环境名称} {追加指定Python版本}例如:
conda create --name road python=3.8

        输入 “Y” 继续:

结束后可输入以下命令查看所有环境,以及进入所需环境:

查看环境

conda env list

进入环境

activate road

如下,前置括号显示环境名则视为成功进入:

2、Pytorch安装

pytorch官网: PyTorch

根据之前的CUDA版本选择后,复制框内命令:

粘贴至 已切换到虚拟环境的Anaconda Prompt中进行 torch的安装,中途输入“Y”继续:

安装完毕后,在终端依次输入如下命令检查,若为“True”,则视为成功: 

3、pycharm环境切换及剩余库的安装

        打开pycharm,在右下角进入环境选择:

 

        选择完后,确定即可

下载一份YOLOv5源码,并在Pycharm中打开:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

找到主目录下的requirements.txt,并注释掉torch的安装(默认会下载CPU版本,固在上面独立安装torch):

 在已切换至对应环境的Anaconda Prompt中,将路径切换至requirements.txt对应目录下,并输入如下命令(若因网络问题,可临时换源进行下载):

pip install -r requirements.txt临时换源安装:
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

 等待剩余库安装完毕即可

4、YOLO代码的测试及训练配置步骤

(1)测试

        我们找到主目录下的detect.py文件直接运行测试,如下图所示,runs/detect中有运行结果,则视为成功:

(2)数据集准备

        准备一份数据集(有图片及对应的标签),按如下分配方式将图片放至images文件夹中,标签文件放至labels文件夹中:

在images文件夹中,将图片按照比例分至train,val文件夹中(如有需要可再增加test文件夹) ,labels文件夹中对应的标签文件做同样的处理:

注意: 各个标签文件夹中为保险起见,都加入名为classes.txt的文件,里面按列保存所有标签名

数据集准备完毕后,我们在data中新建一个后缀为.yaml的文件,内容如下:(路径不得含有中文)

 接着,在models文件夹中选择自己所需的模型配置文件,并打开修改里面的标签类型总数:

(3)开始训练

最后在train.py文件的parse_opt函数中修改一下对应参数:

从上到下依次为 ①权重文件;②模型配置文件③模型配置文件;④训练轮数设置;⑤显存占用大小设置(就是一次往GPU哪里塞多少张图片);⑥线程数设置;

其中,第一行所需的weights权重文件可在YOLO官方文档中下载: 

GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite

 设置好后,则可以运行train.py开始训练

 若出现以下界面则视为成功:

补充

可能报错及解决:

若出现以下错误:

ImportError: Failed to initialize: Bad git executable. 

可在train.py文件的头部加上下面代码解决:

os.environ["GIT_PYTHON_REFRESH"] = "quiet"

相关文章:

YOLO系列环境配置及训练

目录 前言 一、下载所需 1、Anaconda安装 2、NVIDIA 驱动程序安装 3、CUDA安装 4、CUDNN下载及配置 二、环境配置 1、虚拟环境创建 2、Pytorch安装 3、pycharm环境切换及剩余库的安装 4、YOLO代码的测试及训练配置步骤 (1)测试 &#xff08…...

推荐PHP付费进群源码

PHP付费进群源码带自动定位基于ThinkPHP框架开发的,可以快速搭建知识付费粉丝进群。 更新: 1.首页付款轮播 2.城市定位功能 3.更新及优化域名库及支付设置 4.新增一张图模板设置模式,简化后台模板设置 5.前后台其他优化 演示地址&#xff1a…...

Maven修改仓库和镜像地址

目录 1、修改仓库地址2、修改镜像地址 1、修改仓库地址 使用IDEA时,如果不指定自己下载的Maven,idea会默认使用自带的Maven 3(bundle)。maven 3默认的仓库路径一般是在c盘的用户文件夹中的.m2目录下: 当maven下的pom文件中的依赖逐渐增加时,maven仓库下…...

【m98】接收udp包到变为CopyOnWriteBuffer的rtp包及call模块传递的过程

RtpTransport::OnReadPacket ice和Dtls 传输的创建及1个简单的SFU转发实例 实例生动的再现了这一过程: 【webrtc】接收/发送的rtp包、编解码的VCM包、CopyOnWriteBuffer 对于m98的代码,进行走读,大体了解到类似的过程: \src\pc\rtp_transport.cc 收到的data指针和长度len 直…...

synchronized 到底锁的是谁?

synchronized 到底锁的是谁? 修饰方法: 1、静态方法 2、非静态方法,锁住的是方法的调用者 修饰代码块 1、synchronized修饰非静态方法 锁住的是方法的调用者 锁住实例 流程: 1、线程A先拿到synModel对象然后给这个 synModel对象…...

第六章:进制转换与数据存储

系列文章目录 文章目录 系列文章目录前言一、进制二、进制的转换三、原码、反码、补码总结 前言 进制转换是程序员的基本功。 一、进制 进制组成二进制0-1 ,满2进1以0b或0B开头十进制0-9 ,满10进1八进制0-7,满8进1以数字0开头表示十六进制0…...

【微服务】mysql + elasticsearch数据双写设计与实现

目录 一、前言 二、为什么使用mysqles双写 2.1 单用mysql的问题 2.2 为什么不直接使用es 2.2.1 非关系型表达 2.2.2 不支持事务 2.2.3 多字段将造成性能低下 三、mysqles双写方案设计要点 3.1 全新设计 VS 中途调整架构 3.2 全表映射 VS 关键字段存储 3.2.1 最大程度…...

《向量数据库指南》——用了解向量数据库Milvus Cloud搭建高效推荐系统

了解向量数据库 ANN 搜索是关系型数据库无法提供的功能。关系型数据库只能用于处理具有预定义结构、可直接比较值的表格型数据。因此,关系数据库索引也是基于这一点来比较数据。但是 Embedding 向量无法通过这种方式直接相互比较。因为我们不知道向量中的每个值代表什么意思,…...

EtherCAT主站SOEM -- 4 -- SOEM之ethercatprint.h/c文件解析

EtherCAT主站SOEM -- 4 -- SOEM之ethercatprint.h/c文件解析 一 ethercatprint.h/c文件功能预览:二 ethercatprint.h/c 文件的主要函数的作用:2.1.1 char* ec_sdoerror2string(uint32 sdoerrorcode)2.1.2 char* ec_ALstatuscode2string(uint16 ALstatusc…...

Redis01-缓存击穿、穿透和雪崩

目录 开场白-追命3连 使用场景 01缓存穿透场景与方案 02布隆过滤器 03缓存击穿场景与方案 04缓存雪崩场景与方案 开场白-追命3连 看你项目中有说用到Redis,都是哪些场景使用了Redis呢? 如果发生了缓存穿透、击穿、雪崩如何应对呢?缓存…...

multiple kernel learning(MKL)多核学习

历史上之所以会出现多核学习(MKL)这个词,是因为在深度学习流行起来以前,kernel是处理非线性的默认方法,那个年代优化一个非线性函数不容易,每加一层复杂性可能就需要多设计一个优化算法,MKL就是…...

JS匿名函数之函数表达式与立即执行函数

匿名函数是什么?和具名函数有什么区别?让我为大家介绍一下吧! 没有名字的函数,无法直接使用 一.函数表达式 将匿名函数赋值给一个变量,并且通过变量名去调用,我们将这个称为函数表达式 语法: …...

WebGL:基础练习 / 简单学习 / demo / canvas3D

一、前置内容 canvas:理解canvas / 基础使用 / 实用demo-CSDN博客 WebGL:开始学习 / 理解 WebGL / WebGL 需要掌握哪些知识 / 应用领域 / 前端值得学WebGL吗_webgl培训-CSDN博客 二、在线运行HTML 用来运行WebGL代码,粘贴--运行&#xff…...

Python基础入门例程44-NP44 判断列表是否为空(条件语句)

最近的博文: Python基础入门例程43-NP43 判断布尔值(条件语句)-CSDN博客 Python基础入门例程42-NP42 公式计算器(运算符)-CSDN博客 Python基础入门例程41-NP41 二进制位运算(运算符)-CSDN博客…...

【每日一题Day369】LC187重复的DNA序列 | 字符串哈希

重复的DNA序列【LC187】 DNA序列 由一系列核苷酸组成,缩写为 A, C, G 和 T.。 例如,"ACGAATTCCG" 是一个 DNA序列 。 在研究 DNA 时,识别 DNA 中的重复序列非常有用。 给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA…...

服务器密码机主要功能及特点 安当加密

服务器密码机的主要功能包括: 数据加密:密码机使用各种加密算法对数据进行加密,确保只有拥有正确密钥的接收者才能解密和查看数据。数据解密:密码机使用相应的解密算法和密钥对已加密的数据进行解密,使其恢复成原始数据…...

RIP路由配置

RIP路由配置步骤与命令: 1.启用RIP路由:router rip 2.通告直连网络:network 直连网络 3.启用RIPv2版本:version 2 4.禁用自动汇总:no auto-summary 注意:静态路由通告远程网络,动态路由通告…...

尚硅谷Docker基础篇和Dockerfile超详细整合笔记

Docker基础篇DockerFile Docker:您要如何确保应用能够在这些环境中运行和通过质量检测?并且在部署过程中不出现令人头疼的版本、配置问题,也无需重新编写代码和进行故障修复?而这个就是使用容器。Docker解决了运行环境和配置问题…...

JavaScript_Date对象_实例方法_get类

计算这一年还剩多少天&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document&…...

Go语言在区块链开发中的应用

引言 区块链是近年来备受关注的技术领域&#xff0c;它不仅改变了传统的数据交换和存储方式&#xff0c;还为各种应用场景提供了全新的解决方案。而Go语言&#xff08;Golang&#xff09;作为一门简洁、高效的编程语言&#xff0c;正逐渐成为开发区块链应用的首选语言。本文将…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...