YOLOv8超详细环境搭建以及模型训练(GPU版本)

目录

1.安装CUDA和cuDNN

1.1安装CUDA

1.1.1查看当前你的电脑显卡支持的最高CUDA版本,后面的安装不能超过它

1.1.2 下载CUDA(官网或者百度网盘)

1.1.3 安装CUDA 11.8

1.2配置cuDNN

1.2.1下载cuDNN(官网或者百度网盘)

1.2.2 配置cuDNN

2.安装Anaconda

2.1 下载Anaconda

2.2 安装Anaconda

2.3 配置环境变量

3.创建python虚拟环境

3.1创建python虚拟环境

3.2 虚拟环境的路径设置( 常见问题以及解决方法)

4.打开项目

4.1 然后打开yolov8项目

5.在Pycharm中调用yolov8环境

6.pycharm中添加镜像地址

7.安装GPU版本的torch

8.安装其他的项目依赖

9.以训练NEU-DET数据集为例训练模型

9.1创建数据集

9.2 创建数据集的配置文件NEU-DET.yaml文件

9.3 创建模型对象yolov8-neu-det.yaml

9.5模型训练的成功截图

-----------------------------------------------------------------------------------------------------------

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 yolov8 python=3.11.4

其中:yolov8是虚拟环境名称(可以任意取名),python=3.11.4是指定python的版本(也可指定另外的版本)

输入【y】,之后回车开始安装

如果出现如下界面,表示安装完成。

输入命令可以查看虚拟环境否创建成功:conda env list

如下界面表示创建成功(虚拟环境名称以及虚拟环境的路径):

激活进入环境:activate yolov8

激活成功后,前面的base会替换成yolov8

备注:如果需要删除刚刚创建的虚拟环境,可以通过如下命令删除:

conda remove -n yolov8 --all

3.2 虚拟环境的路径设置( 常见问题以及解决方法)

(如果3.1在创建虚拟环境的时候,路径不是anaconda3的安装路径下,而是总是在c盘,才需要进行3.2小节的设置,否则跳过3.2小节)

解决方法参考:【BUG】使用Anaconda3创建虚拟环境时,总是安装到C盘全局默认路径,而不是安装到自定义的Anaconda的envs目录下的解决方法-CSDN博客

4.打开项目

首先下载YOLOv8项目

(YOLO系列项目官网下载地址:主页 -Ultralytics YOLO 文档

yolov8官网下载地址:https://github.com/ultralytics/ultralytics

yolov8百度网盘下载地址链接:百度网盘 请输入提取码

提取码:8t0c

yolov8压缩包下载完成之后,解压到某个路径下(可以解压在D盘)

4.1 打开yolov8项目

Pycharm前提已经安装完成(如果没有安装,可以网上搜索Pycharm的安装教程,有很多)

Pycharm软件中打开刚解压的yolov8项目

5.在Pycharm中调用yolov8环境

点击【File】-->【setting】-->【Project】-->【Python Interpreter】-->【Add Interpreter】-->【Add Local Interpreter】

设置虚拟环境

备注:在Pycharm中如何查看当前项目使用的虚拟环境:

点击左下角的【Terminal】,可以看出使用的虚拟环境

或者在当前项目下新建一个test-p.py文件,输入如下代码并运行

import sys
print(sys.prefix)

截图如下,可以看出使用的是yolov8虚拟环境以及虚拟环境的路径:

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】,进入yolov8虚拟环境之后,粘贴上面复杂的torch版本进行安装(然后等待安装完成)

8.安装其他的项目依赖

左下角终端打开,安装项目依赖,执行命令:pip install -r requirements.txt

如果没有requirements.txt这个文件,可以直接在项目下新建这个文件,将下面的内容复制进去,然后执行安装命令

certifi==2022.12.7
charset-normalizer==2.1.1
colorama==0.4.6
contourpy==1.2.0
cycler==0.12.1
filelock==3.9.0
fonttools==4.50.0
fsspec==2024.6.1
huggingface-hub==0.23.4
idna==3.4
Jinja2==3.1.2
kiwisolver==1.4.5
MarkupSafe==2.1.3
matplotlib==3.8.3
mpmath==1.3.0
networkx==3.2.1
numpy==1.26.3
opencv-python==4.9.0.80
packaging==24.0
pandas==2.2.1
pillow==10.2.0
psutil==5.9.8
py-cpuinfo==9.0.0
pyparsing==3.1.2
python-dateutil==2.9.0.post0
pytz==2024.1
PyYAML==6.0.1
requests==2.28.1
scipy==1.12.0
seaborn==0.13.2
six==1.16.0
sympy==1.12
thop==0.1.1.post2209072238
#torch==2.0.0+cu118
#torchaudio==2.0.1+cu118
#torchvision==0.15.1+cu118
tqdm==4.66.2
typing_extensions==4.8.0
tzdata==2024.1
ultralytics==8.1.34
urllib3==1.26.13

9.以训练NEU-DET数据集为例训练模型

9.1创建数据集

数据集下载地址:链接:百度网盘 请输入提取码

提取码:lh8d

然后将下载的数据集解压之后放在项目的data目录(如何没有此目录,自己创建一个)下。

9.2 创建数据集的配置文件NEU-DET.yaml

在项目的【ultralytics/assets/cfg/datasets】目录下新建一个NEU-DET.yaml,内容如下

path: D:/YOLO/YOLOv8/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 创建模型对象yolov8-neu-det.yaml

在项目的【ultralytics/models/v8】目录下新建一个yolov8-neu-det.yaml,代码如下

# Ultralytics YOLO 🚀, AGPL-3.0 license
# YOLOv8 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect

# 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] # YOLOv8n summary: 225 layers,  3157200 parameters,  3157184 gradients,   8.9 GFLOPs
#  s: [0.33, 0.50, 1024] # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients,  28.8 GFLOPs
#  m: [0.67, 0.75, 768] # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients,  79.3 GFLOPs
#  l: [1.00, 1.00, 512] # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs
#  x: [1.00, 1.25, 512] # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs

# 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, Conv, [512, 3, 2]] # 5-P4/16
  - [-1, 6, C2f, [512, True]]
  - [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
  - [-1, 3, C2f, [1024, True]]
  - [-1, 1, SPPF, [1024, 5]] # 9

# YOLOv8.0n head
head:
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
  - [-1, 3, C2f, [512]] # 12

  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 4], 1, Concat, [1]] # cat backbone P3
  - [-1, 3, C2f, [256]] # 15 (P3/8-small)

  - [-1, 1, Conv, [256, 3, 2]]
  - [[-1, 12], 1, Concat, [1]] # cat head P4
  - [-1, 3, C2f, [512]] # 18 (P4/16-medium)

  - [-1, 1, Conv, [512, 3, 2]]
  - [[-1, 9], 1, Concat, [1]] # cat head P5
  - [-1, 3, C2f, [1024]] # 21 (P5/32-large)

  - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)

截图如下:

9.4 创建train.py文件方便后续的训练

在项目的根目录下创建train.py文件方便后续的训练,后面主需要运行train.py文件就可以再次进行训练了,不必每次都需要出入一次运行命令

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

if __name__ == '__main__':
    model = YOLO('ultralytics/cfg/models/v8/yolov8-neu-det')   # 指定YOLO模型对象,并加载指定配置文件中的模型配置
    #model.load('yolov8s.pt')      #加载预训练的权重文件'yolov8s.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】目录下

到此,环境的搭建以及模型的训练就完成了!!!

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值