🗓️ 四周行动计划总览

周次 核心目标 产出物

第1周 跑通深度学习全流程(分类→检测) 能训练YOLO的代码环境、第一个训练日志

第2周 完成“称重商品识别”项目核心 训练好的YOLO模型(.pt文件)

第3周 工程化部署 + 面试题库 HTTP API服务、面试问答文档

第4周 简历/作品集打磨 + 模拟面试 + 投递 GitHub仓库、自我介绍视频/录音


4月3日实操内容(一天完成了4天的计划)

📅 第1周:环境搭建 + 跑通第一个深度学习项目

目标:消除“无实操”恐惧,理解训练全流程。

Day 1-2:环境与工具(2h/天)

1.已经安装 conda25.5.1和Python3.13.5,故未记录软件安装配置,仍然创建虚拟环境yolo8, python版本3.9,-y确认

conda create -n yolov8 python=3.9 -y

2.激活环境,该环境Python版本应该为3.9

conda activate yolov8

3.安装pytorch cpu版本,而非cuda版本(因为本人电脑配置处理器 AMD Ryzen 5 5600U with Radeon Graphics (2.30 GHz) 机带 RAM 16.0 GB (13.9 GB 可用))

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

4.验证安装

python -c "import torch; print(torch.version)"

反馈:2.8.0+cpu,无报错下一步

5.安装jupyter

pip install jupyterlab

6.安装yolo8官方库ultralytics

pip install ultralytics

7.安装labelimg(可用 Roboflow 在线标注,所以注册了roboflow账户,可下载数据集)

pip install labelimg

8.验证yolo8是否正常

yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'

结果在C:\Users\runs\detect\predict

时间充裕进行下一步------------------------------------------------------------------------------------------------

Day 3-4:用YOLO训练一个极简检测模型(2h/天)

1.下载一个公开小数据集:Roboflow 搜索 “fruit detection” 找一个小规模(<500张)数据集,导出为YOLO8格式的zip

选择数据集:

https://universe.roboflow.com/yusuf-lkbmx/fruit-5jw1i/dataset/1

2.把文件组织成

C:\project\yolo-projects\fruit_dataset\

├── data.yaml

├── train/

│ ├── images/

│ └── labels/

└── valid/

│ ├── images/

│ └── labels/

多出来了没管

└── test/

├── images/

└── labels/

3.检查data.yaml 文件,检查里面的路径是否正确,一般来说正确

文档中names: ['0'],感觉到识别出的水果可能都会叫做0,后面学习原理后应该进一步把数据集中的水果分类啊(待办)

4.用 YOLOv8 训练 10 epoch

在激活环境下进入数据集目录

cd C:\project\yolo-projects\fruit_dataset

开始训练

yolo train data=data.yaml model=yolov8n.pt epochs=10 imgsz=640 batch=4

参数解释:

  • data=data.yaml:数据集配置文件

  • model=yolov8n.pt:使用 YOLOv8 nano 预训练模型(已经下载过,会自动复用)

  • epochs=10:训练 10 个轮次(第一次训练,10轮足够看到效果)

  • imgsz=640:输入图片尺寸

  • batch=4:每次迭代处理4张图片(因为是 CPU,设小一点避免内存溢出)

如果训练过程中提示内存不足,可以将 batch=2 或 batch=1。

5.观察 loss 下降曲线和 mAP 输出

你需要关注的是:

  • box_loss, cls_loss, dfl_loss:这三个损失值应该随着 epoch 增加而逐渐下降(比如从 1.5 降到 0.5 左右)。

  • mAP50:平均精度(IoU=0.5),数值越高越好。10轮后可能只有 0.3~0.5,这很正常。

  • 如果训练过程中 loss 不下降或出现 nan,可能是学习率问题或数据问题,先继续观察。

  • 耐心等待训练完成,可以去做别的事情,CPU 会一直运算。

6.训练结束后,命令行会显示类似:

Results saved to runs/detect/train

保存在runs/detect/train/weights/ 

  • best.pt:验证集上表现最好的模型

  • last.pt:最后一个 epoch 的模型

同时会生成训练曲线图 results.png(在 runs/detect/train/ 下),可以打开看一下 loss 曲线。

从下降趋势可以看出,变化不够平缓,可以加大epoch。

7.用训练好的模型预测几张验证集图片

在同一个命令行中执行(确保当前目录仍在数据集目录):

yolo predict model=runs/detect/train/weights/best.pt source=valid/images

这条命令会对 valid/images 文件夹里的所有验证集图片进行预测,结果保存在 runs/detect/predict 下。

也可以指定单张图片但是没做:

yolo predict model=runs/detect/train/weights/best.pt source=valid/images/某张图片.jpg

打开生成的图片,看看检测框是否正确。

查看10轮训练的结果:

1)mAP50: 0.522

2)loss曲线,在上面

3)漏检或低置信度的图片(低于0.25不显示置信度),分析可能的原因

4)调节阈值重新预测

yolo predict model=runs/detect/train/weights/best.pt source=valid/images conf=0.?

思考反馈:

  • box_loss、cls_loss、dfl_loss 三条曲线应该随着 epoch 增加而下降并趋于平稳。如果还在下降,说明可以训练更多轮。

  • 如果 loss 曲线震荡剧烈或上升,说明学习率可能不合适或数据有问题。

  • ·重点关注 mAP50 这一列(第三列从右数起)。对于一个小数据集、10个 epoch、CPU 训练:

    • mAP50 > 0.5 算不错

    • 0.3~0.5 属于可接受(说明模型学到了基本特征)

    • <0.3 说明效果较差,但作为流程验证仍然有意义

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐