机器视觉 - YoloV8 划分数据集

train/val/test 的关系

  • 纯训练命令行参数 mode=train val=False model=yolov8n.pt

  • 训练+val命令行参数 mode=train val=True model=yolov8n.pt

  • 验证预训练模型的命令行参数 mode=val split=val model=yolov8n.pt

  • 验证自有模型的命令行参数 mode=val split=val model=best.pt

  • 测试自有模型的命令行参数 mode=val split=test model=best.pt

  • train 数据集: 用于训练模型的数据集

  • val 数据集: 在每个epoch完成后, 会使用val数据集进行验证, 来计算loss和mAP等指标, 验证集可以起到模型选择和早停(early stoping)作用, 有助于找到泛化能力最强的模型 . val和train 数据集最好没有交集, 但如果总数据集较少也可以使用部分train数据作为val 数据集.

  • test 数据集: test 是模型正式使用之前, 用于训练阶段从未见到的数据验证模型效果结果, test 数据集绝对不能和train/val数据集有任何交集.

  • train/val/test数据集比例: 数据量较大情况下可以选择8:1:1 , 数据集较小情况下可以选择 6:2:2, 如果过早出现了过拟合, 可以加大验证集的比例, 比如6:2:2, 甚至4:3:3.

  • train/val/test 数据集分隔工具: https://github.com/jfilter/split-folders

  • 更高级的数据集合分割方法 K-Fold Cross Validation https://docs.ultralytics.com/guides/kfold-cross-validation/

posted @ 2024-01-14 17:58  harrychinese  阅读(761)  评论(1编辑  收藏  举报