所以我最近才开始探索机器学习,并且在一个项目中我需要训练 YOLO v5 模型。我首先在 coco128 数据集上进行了尝试:https://www.kaggle.com/ultralytics/coco128。.
yolo v5 的存储库: https ://github.com/ultralytics/yolov5
我按照本教程逐步操作: https ://github.com/ultralytics/yolov5/wiki/Train-Custom-Data 并成功地训练了模型,它正在按照我的意图检测对象。
我想对我们“训练”模型时的基本情况有一个非常基本的概述。
用于训练的命令是:
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt
据我了解,这告诉命令行使用以下参数运行文件“train.py”(它使用 argeparse 库):640(图像大小)、16(批量梯度下降的批量大小)、5(没有。 epochs)、coco128.yaml(配置文件)和 yolov5s.pt(权重文件)。
怀疑
- 本教程提到权重是预训练的。这让我很困惑,因为我认为“训练”模型的整个目标是为参数找到正确的权重。如果已经提供了权重,那么训练到底要达到什么目的?它已经被提供了一堆图像以及这些图像的边界框的标签。它对这些图像和标签有什么作用才能预测对象?
- coco128.yaml 提到了“验证”文件夹的路径。“验证”文件夹到底是做什么用的?