YOLOv10训练环境搭建
目录
1.1.1查看当前你的电脑显卡支持的最高CUDA版本,后面的安装不能超过它
3.2 虚拟环境的路径设置( 常见问题以及解决方法)(如果3.1在创建虚拟环境的时候,路径不是anaconda3的安装路径下,而是总是在c盘,才需要进行3.2小节的设置,否则跳过3.2小节)
9.3 创建模型对象yolov10-neu-det.yaml
-------------------------------------------------------------------------------------------------------------------
1.安装CUDA和cuDNN
1.1安装CUDA
1.1.1查看当前你的电脑显卡支持的最高CUDA版本,后面的安装不能超过它
方法一:通过命令的方式查看
nvidia-smi
方法二:【鼠标右键桌面】--【显示更多选项】--【NVIDIA控制面板】--在控制面板的左下角点击【系统信息】--选择【组件】
NVIDIA CUDA 12.1.68 driver就是显卡支持的CUDA版本
1.1.2 下载CUDA(官网或者百度网盘)
(1)下载地址一(官网):
下载小于12.1版本都都可以,我这里下载的是11.8.0,然后点击【CUDA Toolkit 11.8.0】
- 下载CUDA11.8
(2)下载地址二(百度网盘):
11.8.0版本的百度网盘下载地址:链接:百度网盘 请输入提取码
提取码:h0tw
1.1.3 安装CUDA 11.8
- 点击刚下载的CUDA进行安装
- 下面的路径是提取地址,安装完后会自动删除,选择默认即可,点击【OK】
- 等待提取完成
- 点击【同意并继续】
- 选择【自定义】,点击【下一步】
- 驱动组件可以全部勾选,点击【下一步】
- cmd命令【nvcc -V】查看CUDA是否安装成功,如果出现如下界面表示CUDA安装成功
1.2配置cuDNN
1.2.1下载cuDNN(官网或者百度网盘)
(1)下载地址一(官网)
下载cuDNN,先登录,按照提示流程注册、登录即可。
cuDNN选择支持CUDA的版本(刚刚下载的CUDA是哪个版本就选择对应的版本)(CUDA 11.x则代表支持CUDA11代版本的所有版本)
下载对应自己电脑系统的版本。
(2)下载地址一(百度网盘)
链接:百度网盘 请输入提取码
提取码:bwas
1.2.2 配置cuDNN
解压cuDNN压缩包,然后将cuDNN文件夹里面的几个文件复制到CUDA的安装目录下直接覆盖
覆盖
2.安装Anaconda
2.1 下载Anaconda
(1)Anaconda下载方式一(官网)
Anaconda下载官网:Anaconda | The Operating System for AI
点击下载【Free Download】即可
然后点击【Download】
(2)Anaconda下载方式二(百度网盘)
链接:百度网盘 请输入提取码
提取码:9hcx
2.2 安装Anaconda
点击安装包,然后点击【Next]
- 点击【I Agree】
- 点击【Next】
- 安装路径的选择,点击【Next】
- 点击【INstall】,然后等待安装完成
- 点击【Next】
- 点击【Next】
- 点击【Finish】
2.3 配置环境变量
右键点击【我的电脑】(此电脑)--【属性】--点击【高级系统设置】--【高级】--【环境变量】-找到系统变量下的【Path】--右侧点击【新建】,按照我标红框的进行添加即可。(注意anaconda3的安装路径
3.创建python虚拟环境
3.1创建python虚拟环境
虚拟环境的作用:虚拟环境可以隔离不同项目的依赖项,避免不同项目之间的干扰,使项目更加稳定。
首先进入命令界面
输入如下命令:
conda create -n yolov10 python=3.11.4
其中:yolov10是虚拟环境名称(可以任意取名),python=3.11.4是指定python的版本(也可指定另外的版本)
输入【y】,之后回车开始安装
如果出现如下界面,表示安装完成。
输入命令可以查看虚拟环境否创建成功:conda env list
如下界面表示创建成功(虚拟环境名称以及虚拟环境的路径):
激活进入环境:activate yolov10
激活成功后,前面的base会替换成yolov10
备注:如果需要删除刚刚创建的虚拟环境,可以通过如下命令删除:
conda remove -n yolov10 --all
3.2 虚拟环境的路径设置( 常见问题以及解决方法)
(如果3.1在创建虚拟环境的时候,路径不是anaconda3的安装路径下,而是总是在c盘,才需要进行3.2小节的设置,否则跳过3.2小节)
解决方法参考:http://t.csdnimg.cn/OkQyN
4.打开项目
YOLO系列项目官网下载地址:主页 -Ultralytics YOLO 文档
yolov10官网下载地址:https://github.com/THU-MIG/yolov10
yolov10百度网盘下载地址链接:链接:百度网盘 请输入提取码
提取码:bz0k
yolov10压缩包下载完成之后,解压到某个路径下(可以解压在D盘)
4.1 然后打开yolov10项目
Pycharm前提已经安装完成(如果没有安装,可以网上搜索Pycharm的安装教程,有很多)
Pycharm软件中打开项目
5.在Pycharm中调用yolov10环境
点击【File】-->【setting】-->【Project】-->【Python Interpreter】-->【Add Interpreter】-->【Add Local Interpreter】
设置虚拟环境
备注:在Pycharm中如何查看当前项目使用的虚拟环境:
点击左下角的【Terminal】,可以看出使用的虚拟环境
或者在当前项目下新建一个test-p.py文件,输入如下代码并运行
import sys
print(sys.prefix)
截图如下,可以看出使用的是yolov10虚拟环境以及虚拟环境的路径:
6.pycharm中添加镜像地址
添加镜像可以加快下载依赖包的速度。
点击图标【Python Packages】--点击设置按钮【Manage respositories】
点击【+】--在【Name】处随意更改名字,然后在【Repository URL】填上镜像源地址,最后点击【OK】
一些镜像地址:
1.清华大学镜像源:https://pypi.tuna.tsinghua.edu.cn/simple/
2.阿里云镜像源:http://mirrors.aliyun.com/pypi/simple/
3.中国科技大学镜像源:https://pypi.mirrors.ustc.edu.cn/simple/
7.安装GPU版本的torch
torch官网:Previous PyTorch Versions | PyTorch
选择和CUDA对应的torch版本(前面自己已经安装的版本),然后复制
- 进入pycharm,点击【Teminal】,进入yolov10虚拟环境之后,粘贴上面复杂的torch版本进行安装(然后等待安装完成)
8.安装其他的项目依赖
左下角终端打开,安装项目依赖,执行命令:pip install -r requirements.txt
如果没有requirements.txt这个文件,可以直接在项目下新建这个文件,将下面的内容复制进去
torch==2.0.1
torchvision==0.15.2
onnx==1.14.0
onnxruntime==1.15.1
pycocotools==2.0.7
PyYAML==6.0.1
scipy==1.13.0
onnxsim==0.4.36
onnxruntime-gpu==1.18.0
gradio==4.31.5
opencv-python==4.9.0.80
psutil==5.9.8
py-cpuinfo==9.0.0
huggingface-hub==0.23.2
safetensors==0.4.3
9.以训练NEU-DET数据集为例训练模型
9.1创建数据集
数据集下载地址:
链接:https://pan.baidu.com/s/1peB3kd6T7xNoKnjxsrKHuw?pwd=xqcm
提取码:xqcm
然后将下载的数据集解压之后放在项目的data目录(如何没有此目录,自己创建一个)下。
9.2 创建数据集的配置文件NEU-DET.yaml文件
在项目的【ultralytics/cfg/datasets】目录下新建一个NEU-DET.yaml,内容如下
path: D:/YOLO/YOLOv10/data/NEU-DET # 注意修改自己NEU-DET数据集的路径
train: train/images # train images
val: val/images # val images
test: test/images # test images
# Classes
names:
0: crazing
1: inclusion
2: patches
3: pitted_surface
4: rolled-in_scale
5: scratches
截图如下
9.3 创建模型对象yolov10-neu-det.yaml
在项目的【ultralytics/cfg/models/v10】目录下新建一个yolov10-neu-det.yaml,代码如下
# Parameters
nc: 6 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
# [depth, width, max_channels]
n: [0.33, 0.25, 1024]
# YOLOv8.0n backbone
backbone:
# [from, repeats, module, args]
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
- [-1, 3, C2f, [128, True]]
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
- [-1, 6, C2f, [256, True]]
- [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
- [-1, 6, C2f, [512, True]]
- [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
- [-1, 3, C2f, [1024, True]]
- [-1, 1, SPPF, [1024, 5]] # 9
- [-1, 1, PSA, [1024]] # 10
# YOLOv8.0n head
head:
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
- [-1, 3, C2f, [512]] # 13
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
- [-1, 3, C2f, [256]] # 16 (P3/8-small)
- [-1, 1, Conv, [256, 3, 2]]
- [[-1, 13], 1, Concat, [1]] # cat head P4
- [-1, 3, C2f, [512]] # 19 (P4/16-medium)
- [-1, 1, SCDown, [512, 3, 2]]
- [[-1, 10], 1, Concat, [1]] # cat head P5
- [-1, 3, C2fCIB, [1024, True, True]] # 22 (P5/32-large)
- [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
截图如下:
9.4 创建train.py文件方便后续的训练
在项目的根目录下创建train.py文件方便后续的训练,后面主需要运行train.py文件就可以再次进行训练了,不必每次都需要出入一次运行命令
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLOv10
if __name__ == '__main__':
model = YOLOv10('ultralytics/cfg/models/v10/yolov10-neu-det.yaml') # 指定YOLO模型对象,并加载指定配置文件中的模型配置
#model.load('yolov10s.pt') #加载预训练的权重文件'yolov10s.pt',加速训练并提升模型性能
model.train(data='ultralytics/cfg/datasets/NEU-DET.yaml', # 指定训练数据集的配置文件路径,这个.yaml文件包含了数据集的路径和类别信息
cache=False, # 是否缓存数据集以加快后续训练速度,False表示不缓存
imgsz=640, # 指定训练时使用的图像尺寸,640表示将输入图像调整为640x640像素
epochs=200, # 设置训练的总轮数为200轮
batch=16, # 设置每个训练批次的大小为16,即每次更新模型时使用16张图片
close_mosaic=10, # 设置在训练结束前多少轮关闭 Mosaic 数据增强,10 表示在训练的最后 10 轮中关闭 Mosaic
workers=8, # 设置用于数据加载的线程数为8,更多线程可以加快数据加载速度
patience=50, # 在训练时,如果经过50轮性能没有提升,则停止训练(早停机制)
device='0', # 指定使用的设备,'0'表示使用第一块GPU进行训练
optimizer='SGD', #设置优化器为SGD(随机梯度下降),用于模型参数更新
)
截图如下:
9.5模型训练的成功截图
模型训练的结果保存在项目的【run/detect】目录下
到此,环境的搭建以及模型的训练就完成了!!!