YOLO训练入门(下)学习笔记(第四集)

📅 2026/7/3 18:10:25 👁️ 阅读次数 📝 编程学习
YOLO训练入门(下)学习笔记(第四集)

⏱ 00:02 - 00:30|核心类比:训练 = 管员工

  • 电脑硬件(CPU / GPU / 内存)= 员工
  • 模型训练 = 让员工干活

👉 核心思想:

不要让硬件偷懒,也不要让它过劳崩溃


⏱ 00:30 - 01:36|如何判断训练速度?

❗关键点

  • 不看 epoch(轮数)
  • 看每一轮耗时(重点是第一个进度条)

📊 进度条时间含义

  • 左边:已用时间
  • 右边:预计剩余时间

👉 示例:

  • 已用 17 秒 + 剩余 20 秒 ≈ 总 37 秒

👉 结论:

第一个进度条时间 ≈ 单轮训练耗时


⏱ 01:39 - 04:11|训练效率的本质(非常重要⭐)

训练速度 ≠ 一个数字
👉 本质是4种硬件利用率

🧩 四大核心资源

  • CPU
  • 内存(RAM)
  • GPU(CUDA利用率)
  • 显存(GPU Memory)

🔧 如何查看 CUDA?

如果任务管理器看不到:

  1. 关闭“硬件加速 GPU 计划”
  2. 重启电脑
  3. 在GPU面板选择 CUDA

✅ 高效训练的两个特征

1️⃣CUDA利用率:高且稳定
2️⃣所有资源:不达到100%


⚠️ 为什么不能100%?

  • 会报错(OOM等)
  • 系统降速保护
  • 训练反而变慢

👉 人话:

榨干=崩溃,留点余量=更稳更快


⏱ 04:23 - 05:06|CPU vs GPU训练对比

实验:

device = "cpu"

结果:

  • GPU不用了(CUDA=0)
  • CPU负载上升
  • 训练时间暴涨(37秒 → 接近5分钟)

👉 结论:

GPU训练 ≫ CPU训练(数量级差距)


⏱ 05:26 - 11:12|参数一:image size(图像尺寸)


📦 训练流程(重要理解)

  1. 图片缩放到统一尺寸(如640×640)
  2. 打包成数据块
  3. 输入模型训练

👉 核心原因:

统一尺寸 = 提高计算效率


⚡ 速度影响

image size计算量速度

👉 实测:

  • 640 → 37秒
  • 320 → 29秒
  • 更小 → 提升有限(有上限)

⚠️ 限制

  • 必须是32的倍数
  • 最小:32

🎯 对效果的影响(重点!)

❌ 太小:
  • 图片变马赛克
  • 模型学不到特征
❌ 太大:
  • 图片变模糊(放大)
  • 训练慢 + 效果不一定好

✅ 推荐策略

默认:

imgsz = 640

🔍 什么时候调整?

✔ 调大(如1280)
  • 图片大 + 目标小
✔ 调小(如512)
  • 图片本身小
  • 放大会模糊
❌ 极端情况
  • 图片小 + 目标小
    👉直接换数据集

⏱ 11:15 - 16:25|参数二:Batch(批量大小)


📦 什么是 Batch?

  • 一次喂给模型的图片数量
  • 👉 一轮训练 = 多个 batch

📊 示例

  • 1052 张图片
  • Batch=2 → 526批
  • Batch=8 → 132批

⚡ 影响规律

Batch显存占用速度
太大爆显存报错

❗关键结论

Batch越大越快(但有上限)


💥 错误示例

batch = 999

👉 直接 OOM(显存炸)


🧠 最优策略

batch = -1

👉 YOLO自动帮你找最优(AutoBatch)

⏱ 16:57 - 20:33|参数三:Cache(缓存)


🧠 问题本质

默认流程:

每个batch都要从硬盘读图片 → 很慢


🚀 cache="ram" 做了什么?

训练前:

  1. 所有图片加载进内存
  2. 提前缩放

训练时:

  • 直接用 → 跳过读取 + 预处理

⚡ 效果

  • 21秒 → 18秒(略提升)

💾 代价

  • 占用内存(例:+1GB)

🎯 适用场景(重点)

✔ 图片很大(几千像素)
✔ 训练很慢 + CUDA利用率低


🧠 核心思想

常用数据 → 放近一点(内存)


⏱ 21:01 - 25:24|参数四:Workers(多进程)


🧠 问题本质

  • batch打包 + 数据增强是耗时的
  • 如果跟不上GPU → GPU会“干等”

🚀 解决方案

👉 多进程打包(Workers)


⚡ 效果

  • 18秒 → 11秒(巨大提升)

💾 代价

  • 每+1 worker → 内存翻倍消耗

📊 规律

Workers内存速度
太高爆内存慢/报错

人多不一定快,合适最重要


⏱ 27:14 - 结尾|实战建议

✅ 推荐训练状态

  • 负载:70% ~ 80%
  • 不要满载
  • 训练时别干别的事

🧾 总结(重点复习版)

🎯 提升训练速度四大参数

参数作用核心策略
image size控制计算量默认640
batch控制并行量用-1自动
cache减少IO内存够就开
workers加速数据处理适量

🧠 最核心一句话

训练优化本质 = 让GPU一直高效干活,同时别让任何资源成为速度瓶颈