使用Ultralytics YOLOv8训练模型遇FileNotFoundError的问题排查
问题
参考LearnOpenCV教程,使用自定义坑洞数据集训练Ultralytics YOLOv8模型,配置的yaml文件如下:
path: d:/MyData/Yolo8_tutorial/pothole_dataset_v8 train: 'train/images' val: 'valid/images' # class names names: 0: 'pothole'
在Jupyter Notebook中运行的训练代码:
# Load the model. model = YOLO('yolov8n.pt') # Training. results = model.train( data=pothole_yaml_file, epochs=1, name='yolov8n_v8_50e' )
训练约7分钟后出现错误:
Validating d:\MyData\Yolo8_tutorial\runs\detect\yolov8n_v8_50e7\weights\best.pt... Ultralytics YOLOv8.0.72 Python-3.9.0 torch-2.0.0+cu118 CUDA:0 (NVIDIA GeForce GTX 1050, 3072MiB) Model summary (fused): 168 layers, 3005843 parameters, 0 gradients, 8.1 GFLOPs FileNotFoundError: Dataset 'pathole_data.ymal' for task=detect not found
错误原因
- 文件名拼写错误:错误信息里的
pathole_data.ymal存在两处错误,一是单词拼写错误(pathole应为pothole),二是文件后缀错误(.ymal应为.yaml) - 训练代码中
pothole_yaml_file变量指向的文件路径/名称有误,导致训练进入验证阶段时,无法找到正确的数据集配置文件
解决方法
- 检查
pothole_yaml_file变量的赋值,确保它指向你实际创建的yaml文件的完整且正确的路径,文件名必须完全匹配(比如你的yaml文件如果命名为pothole_data.yaml,就不能写成错误的pathole_data.ymal) - 确认你的yaml文件后缀是
.yaml,文件名拼写为pothole而非pathole - 验证yaml文件的存放位置:在Jupyter Notebook中可以执行
import os; print(os.getcwd())查看当前工作目录,确保yaml文件的路径(相对路径或绝对路径)能被当前环境正确访问,必要时调整文件路径或切换工作目录
内容的提问来源于stack exchange,提问作者mans
相关产品推荐
相关产品推荐

