当前位置: 首页 > 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;正逐渐成为开发区块链应用的首选语言。本文将…...

2026年初中中考英语大纲词汇表1600个电子版PDF(含单词音频和默写本)

2026年初中英语大纲词汇表1600词 核心内容&#xff1a; 1600个初中英语考纲词汇完整列表&#xff08;按新课标要求整理&#xff09;配套默写训练本&#xff08;含汉译英英译汉双向练习&#xff09;专业录制的单词发音音频包 资源特性&#xff1a; 电子版采用可打印PDF格式支…...

Windows Subsystem for Android (WSA) 技术指南:从问题诊断到场景落地的完整实践路径

Windows Subsystem for Android (WSA) 技术指南&#xff1a;从问题诊断到场景落地的完整实践路径 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA Windows Su…...

数字记忆守护者:GetQzonehistory实现QQ空间数据本地备份全攻略

数字记忆守护者&#xff1a;GetQzonehistory实现QQ空间数据本地备份全攻略 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 社交媒体数据备份的紧迫性&#xff1a;我们面临的三大核心痛点…...

PPO-Lag在Velocity-Walker2d任务中周期性震荡的原因分析与解决方案

PPO-Lag在Velocity-Walker2d任务中周期性震荡的机制解析与调优实践 当你在Velocity-Walker2d环境中观察到训练曲线像心电图一样规律起伏时&#xff0c;很可能正遭遇PPO-Lag算法的经典震荡问题。这种周期性波动不仅影响策略收敛效率&#xff0c;更可能掩盖算法在安全约束处理上的…...

WebLaTex:革新学术写作体验的云端LaTeX解决方案

WebLaTex&#xff1a;革新学术写作体验的云端LaTeX解决方案 【免费下载链接】WebLaTex A complete alternative for Overleaf with VSCode Web Git Integration Copilot Grammar & Spell Checker Live Collaboration Support. Based on GitHub Codespace and Dev cont…...

告别命令行:用 Gradio 为本地大模型打造专属 Web 聊天室

1. 为什么需要给本地大模型加个Web界面&#xff1f; 还在用命令行和你的本地大模型聊天吗&#xff1f;每次打开终端输入命令&#xff0c;看着密密麻麻的文本输出&#xff0c;是不是感觉像是在和一台老式打字机对话&#xff1f;作为一个折腾过各种大模型的开发者&#xff0c;我完…...

G-Helper技术指南:华硕笔记本显示配置与性能优化全解析

G-Helper技术指南&#xff1a;华硕笔记本显示配置与性能优化全解析 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, S…...

夜神模拟器抓包微信小程序实战指南

1. 环境准备与基础配置 想要抓取微信小程序的数据包&#xff0c;首先得搭建好工作环境。我推荐使用夜神模拟器的安卓7版本&#xff0c;这个版本稳定性好&#xff0c;兼容性强&#xff0c;而且自带root权限&#xff0c;省去了很多麻烦。安装完模拟器后&#xff0c;你会发现系统已…...

发送营销短信接口调用教程:保障高转化率的营销短信API接口开发与频率优化

在企业营销推广场景中&#xff0c;短信仍是触达用户的高效渠道&#xff0c;但开发者在集成短信服务时&#xff0c;常面临发送营销短信接口调用失败、签名校验异常、发送频率不合理导致触达率与转化率双低等问题。本文将从原理拆解、实战调用、频率优化三个维度&#xff0c;为前…...

Gerrit与GitLab单向同步实战:配置详解与常见问题排查

1. 为什么需要Gerrit与GitLab单向同步&#xff1f; 在代码管理的工作流中&#xff0c;Gerrit和GitLab各自扮演着不同角色。Gerrit以强大的代码审核机制著称&#xff0c;而GitLab则更擅长作为Git仓库托管平台。很多团队既想保留GitLab现有的CI/CD流程&#xff0c;又希望引入Gerr…...