type
status
date
slug
summary
tags
category
icon
password
comment
- 之前在学习时发现很多视频评论都有关于v8数据集找不到的问题,但似乎网上相关内容较少,今天闲来写篇博客解释一下
解决方案一:写绝对路径
- 对于不想过多追究的同学,最简单的方法就是写绝对路径,这个是绝对不会出错的。
- 不过,相对路径也有很多好的地方,例如在服务器运行不需要改参数等等
解决方案二:查看并修改源码
- 我的源码是ultralytics的24/1/5版本,
train
通过ultralytics\\engine\\trainer.py
该文件创建trainer()
,同时我们可以看到data
参数也将在这里parse
,所以我们可以通过此处找到最终路径解析的源码,这里跳过该部分。
ultralytics\\utils\\__init__.py
,经过一系列跳转,我们不难找到该文件,此处有两个问题:- 缓存问题:找到下类
- 格式问题:
同样在上述类
SettingManager()
的_init_()
方法中,不难发现数据集的路径设置
在调用
save()
函数前有一个判断if,已被我删除,他会将此次运行的路径信息存在C:\\Users\\*****\\AppData\\Roaming\\Ultralytics
的settings.yaml
下。if会导致存在缓存文件的情况下,不会保存这次运行配置;换句话说,你每次运行完之后,得删除setting.yaml
,否则他会运行上次数据路径,所以会有人觉得程序查找的路径很奇怪。那么解决办法可以是,每次运行完后删除该配置文件,同样,也可以和我一样删除if判断。
原函数
str(datasets_root / 'datasets')
改为了str(root / 'datasets')
,同时在源码目录下新建datasets
目录,最后将数据文件夹imagenet100/images
等放入其中即可原因是
root
是根目录,所以我们必须创建datasets
这个名字的文件夹放入数据同样,如果不修改此处源码,则需要在和
ultralytics
源码同级位置放入datasets
目录总结:
- 绝对路径
- 相对路径:源码中修改缓存保存方式,并且更改寻找路径方式。
- 我使用的是源码安装,所以修改源码就可以改变函数,使用
pip install ultralytics
的请找到虚拟环境的库文件。
- Author:E1ainay
- URL:https://e1ainay.top/article/yolov8data
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!