YOLOv5 配置与训练笔记
自用备份,Windows 端 YOLOv5 配置和训练为主,代码为核心,记录踩坑和关键点。
环境准备
- 系统:Windows 10/11
- Python:3.9(其他版本容易崩)
- GPU(可选):NVIDIA + CUDA 11.8(CPU 也能跑,慢点)
- FFmpeg:解压后放根目录(视数据集需求)
下载与安装
直接去 YOLOv5 项目页,点“Code”按钮,选“Download ZIP”。解压到 D:\YOLOv5(路径自定)。
进目录,双击 detect.py 检查环境,或者手动装:
-
Python 3.9:
python --version # 确认 3.9.x -
建虚拟环境:
python -m venv venv venv\Scripts\activate -
装依赖:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple -
PyTorch:
- GPU:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 - CPU:
pip install torch torchvision torchaudio - 检查:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
- GPU:
数据集准备
- 打标工具:用
labelImg- 安装:
pip install labelImg - 运行:
labelImg - 注意:保存格式选 YOLO,生成
.txt,每行class x_center y_center width height(归一化)。
- 安装:
- 目录结构:
D:\YOLOv5\data\ images\ train\ val\ labels\ train\ val\ - 配置
data.yaml:train: D:/YOLOv5/data/images/train val: D:/YOLOv5/data/images/val nc: 2 names: ['cat', 'dog'] - 注意:训练集每类至少 50-100 张,验证集 10-20%,太少过拟合。
训练
- 跑训练:
python train.py --img 640 --batch 16 --epochs 50 --data data/data.yaml --weights yolov5s.pt- 参数:
--img图片大小,--batch批次,--epochs轮数,--weights预训练模型。
- 参数:
- 输出:
runs\train\exp\weights\best.pt(最佳权重),runs\train\exp\results.txt(日志)。
TensorBoard 配置
- 安装:
pip install tensorboard - 运行:
tensorboard --logdir runs/train - 浏览器打开:
http://localhost:6006,看 loss、mAP 等曲线。 - 注意:训练时日志默认存
runs/train,多实验会分exp,exp2。
推理
- 命令行推理:
python detect.py --weights runs/train/exp/weights/best.pt --img 640 --conf 0.25 --source data/images/test--source常用:data/images/test:文件夹image.jpg:单图video.mp4:视频0:摄像头
- 结果:
runs\detect\exp。
WebUI 配置(Gradio)
- 安装:
pip install gradio - 新建
webui.py(放D:\YOLOv5下):import torch import gradio as gr model = torch.hub.load("./", "custom", path="./runs/train/exp/weights/best.pt", source="local") title = "基于Gradio的YOLOv5演示项目" desc = "这是一个基于Gradio的YOLOv5演示项目" gr.Interface(inputs=[gr.Image()], outputs=["image"], title=title, description=desc, fn=lambda img: model(img).render()[0] ).launch() - 运行:
python webui.py - 浏览器打开弹出的地址(默认
http://127.0.0.1:7860),上传图片,显示检测结果。 - 注意:权重路径改成自己的(比如
runs/train/exp/weights/best.pt)。
属性介绍
- 模型变体:
yolov5s:快,低精度yolov5m:平衡yolov5l:高精度,显存多yolov5x:最强,慢
- 超参数(
data/hyp.scratch.yaml):lr0:学习率,默认 0.01momentum:动量,默认 0.937box:框损失,默认 0.05
- 数据增强:默认开 mosaic。
注意
- 显存不足:调小
--batch或用yolov5s。 - 推理慢:加
--half半精度。 - 标签错:检查
data.yaml和.txt一致。 - 数据集小:每类 <50 张精度差。
问题
- 训练卡住:换源或手动下权重。
- 检测不出:路径错或
--conf太高。 - CUDA 报错:版本不匹配。
- TensorBoard 空白:确认
runs/train有日志。 - WebUI 报错:检查权重路径或 Gradio 版本。
补充
- 数据集:可用 Roboflow 导出 YOLO 格式。
- 调试:训练加
--nosave。

浙公网安备 33010602011771号