YOLOV8环境配置速通
前置安装软件
- python8+
- Anaconda(mini版也可以)(记得加入环境变量)
创建想虚拟环境
前置条件 anaconda 环境良好
win + s,或在快捷方式里找到 Anaconda Prompt (Anaconda)
创建一个名为 yolov8(自行取名) 的环境
1 | conda create -n yolov8 python=3.8 |
查看环境列表
1 | conda env list |

切换到新创建的环境
1 | activate yolov8 |

安装cuda + cudnn(使用N卡下)
更换清华镜像源(如需要)
1 | conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64 |
查看 cuda 的支持版本
1 | nvidia-smi |
进入 CUDA Toolkit - Free Tools and Training | NVIDIA Developer 安装相应版本的cuda工具
进入 CUDA Deep Neural Network (cuDNN) | NVIDIA Developer 安装相应 cuda 的 cudann
安装 pytorch
根据你的环境安装

使用conda的包,选好版本后复制进 yolov8 环境下的命令窗口运行
安装ultralytics
- 使用CLI
1 | pip install ultralytics |
- 直接 clone 源码解压
进入源码目录,输入
1 | pip install -e |
安装
下载训练模型
Releases · ultralytics/assets (github.com)
选择合适的训练模型下载
标记图片
安装 labelimg
pip 安装
依次执行
1 | pip install PyQt5 |
conda 安装
conda 会自动安装相关的依赖包
1 | conda install labelimg |
使用 labelimg 对图片标注
- 在 yolov8 环境下执行命令行
1 | labelimg |
- 建议勾选自动保存

- 点击标记格式更改为 YOLO,从上至下分别是:打开单个图片,打开一个文件夹,更改保存文件夹,下一张图片,上一张图片,确认图片,保存

- 导入图片后,右键选择 Create Rectbox 或 “W” 快捷键进入标记模式,框选主体,在弹出的框中输入主题的名字,例如下图输入 panda,点击回车或 OK 后完成这一主体的标记。
- 单个图片可以标记多个主体,完成标记后如果选择自动保存可以直接进入下一张继续标记,否则记得点击保存~

- 完成标记后得到一批 图片名.txt 的文件以及 class.txt 文件,训练主要需要 图片名.txt 文件,class.txt 记录有多少的分类以及分类名
训练
数据集文件树
构建以下结构的文件夹目录,用于存放数据
将被标记的图片放在 dataset/images/train 中,与被标记具有相同主体的未标记图片放在 dataset/images/val 中用于验证
将标记生成的 图片名.txt 放入 dataset/labels/train 中,务必和标记的图片一一对应
1 | dataset |
model中 .pt 和 .yaml 的区别
- .pt 是指从预训练模型的基础上进行训练。若我们选择 yolov8n.pt这种.pt类型的文件,其实里面是包含了模型的结构和训练好的参数的,也就是说拿来就可以用,就已经具备了检测目标的能力了,yolov8n.pt能检测coco中的80个类别。假设你要检测不同种类的狗,那么yolov8n.pt原本可以检测狗的能力对你训练应该是有帮助的,你只需要在此基础上提升其对不同狗的鉴别能力即可。但如果你需要检测的类别不在其中,例如口罩检测,那么就帮助不大。
- .yaml是从零开始训练
data
指定数据集文件的位置,数据集包含训练和验证的图像、标签
.yaml的配置样例如下
1 | path: ../datasets/coco128 # dataset root dir 数据集得根目录 |
脚本
编写一个 .py 文件用于训练
1 | from ultralytics import YOLO |
命令行
直接在 yolov8 环境下的命令行执行
1 | 从YAML构建新模型,从头开始训练 |
结果
(忽略我拿 CPU 跑的1个半小时)

结果的模型保存在 runs/detect 内,包含最后一次的模型和效果最好的模型,至此训练完成
参数说明
训练命令的参数如下所示,可根据自身需求更改
| 参数名 | 默认值/设置 | 描述 |
|---|---|---|
| model | None | 模型文件路径,例如 yolov8n.pt, yolov8n.yaml |
| data | None | 数据文件路径,例如 coco128.yaml |
| epochs | 100 | 训练的轮次数量 |
| patience | 50 | 早停训练的等待轮次 |
| batch | 16 | 每批图像数量 |
| imgsz | 640 | 输入图像的大小,以整数表示 |
| save | True | 保存训练检查点和预测结果 |
| save_period | -1 | 每x轮次保存检查点 |
| cache | False | 使用缓存加载数据 |
| device | None | 运行设备,例如 cuda device=0 或 device=0,1,2,3 或 device=cpu |
| workers | 8 | 数据加载的工作线程数 |
| pretrained | True | (bool 或 str)是否使用预训练模型(bool)或从中加载权重的模型(str) |
| optimizer | ‘auto’ | 使用的优化器,选择范围=[SGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, auto] |
| verbose | False | 是否打印详细输出 |
| seed | 0 | 随机种子,用于可重复性 |
| deterministic | True | 是否启用确定性模式 |
| single_cls | False | 将多类数据作为单类训练 |
| rect | False | 矩形训练,每批为最小填充整合 |
| cos_lr | False | 使用余弦学习率调度器 |
| close_mosaic | 10 | (int) 最后轮次禁用马赛克增强(0为禁用) |
| resume | False | 从最后检查点恢复训练 |
| amp | True | 自动混合精度(AMP)训练,选择范围=[True, False] |
| fraction | 1.0 | 训练的数据集比例(默认为1.0,即训练集中的所有图像) |
| profile | False | 在训练期间为记录器分析ONNX和TensorRT速度 |
| freeze | None | (int 或 list, 可选) 在训练期间冻结前n层,或冻结层索引列表 |
| lr0 | 0.01 | 初始学习率(例如 SGD=1E-2, Adam=1E-3) |
| lrf | 0.01 | 最终学习率 (lr0 * lrf) |
| momentum | 0.937 | SGD动量/Adam beta1 |
| weight_decay | 0.0005 | 优化器权重衰减5e-4 |
| warmup_epochs | 3.0 | 热身轮次(小数ok) |
| warmup_momentum | 0.8 | 热身初始动量 |
| warmup_bias_lr | 0.1 | 热身初始偏差lr |
| box | 7.5 | 框损失增益 |
| cls | 0.5 | cls损失增益(根据像素缩放) |
| dfl | 1.5 | dfl损失增益 |
| pose | 12.0 | 姿态损失增益(仅限姿态) |
| kobj | 2.0 | 关键点obj损失增益(仅限姿态) |
| label_smoothing | 0.0 | 标签平滑(小数) |
| nbs | 64 | 标称批大小 |
| overlap_mask | True | 训练期间掩码应重叠(仅限分割训练) |
| mask_ratio | 4 | 掩码降采样比率(仅限分割训练) |
| dropout | 0.0 | 使用dropout正则化(仅限分类训练) |
| val | True | 训练期间验证/测试 |
- 标题: YOLOV8环境配置速通
- 作者: edge_sky
- 创建于 : 2024-03-26 22:01:10
- 更新于 : 2024-07-01 22:50:06
- 链接: https://edgesky.cn/2024/03/26/YOLOV8环境配置速通/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。