yolov8相对路径

本文讲述了在使用Yolov8时遇到的数据集相对路径错误,提供了两种解决方案:一是使用绝对路径避免问题,二是修改源码处理缓存和路径结构,对pip安装的用户需找到虚拟环境库进行相应修改。
摘要由CSDN通过智能技术生成

关于yolov8中数据集相对路径错误(找不到)的问题

  • 之前在学习时发现很多视频评论都有关于v8数据集找不到的问题,但似乎网上相关内容较少,今天闲来写篇博客解释一下

解决方案一:写绝对路径

  • 对于不想过多追究的同学,最简单的方法就是写绝对路径,这个是绝对不会出错的。
  • 不过,相对路径也有很多好的地方,例如在服务器运行不需要改参数等等

解决方案二:查看并修改源码

  • 我的源码是ultralytics的24/1/5版本,train通过ultralytics\engine\trainer.py该文件创建trainer(),同时我们可以看到data参数也将在这里parse,所以我们可以通过此处找到最终路径解析的源码,这里跳过该部分。
  • ultralytics\utils\__init__.py,经过一系列跳转,我们不难找到该文件,此处有两个问题:
    1. 缓存问题:找到下类
class SettingsManager(dict):

在这里插入图片描述

在调用save()函数前有一个判断==if==,已被我删除,他会将此次运行的路径信息存在C:\Users\*****\AppData\Roaming\Ultralyticssettings.yaml下。if会导致存在缓存文件的情况下,不会保存这次运行配置;换句话说,你每次运行完之后,得删除s etting.yaml,否则他会运行上次数据路径,所以会有人觉得程序查找的路径很奇怪。

那么解决办法可以是,每次运行完后删除该配置文件,同样,也可以和我一样删除if判断

  1. 格式问题:
    在这里插入图片描述
    同样在上述类SettingManager()_init_()方法中,不难发现数据集的路径设置

原函数str(datasets_root / 'datasets')改为了str(root / 'datasets'),同时在源码目录下新建datasets目录,最后将数据文件夹imagenet100/images等放入其中即可

原因是root是根目录,所以我们必须创建datasets这个名字的文件夹放入数据

同样,如果不修改此处源码,则需要在和ultralytics源码同级位置放入datasets目录

总结:

  1. 绝对路径
  2. 相对路径:源码中修改缓存保存方式,并且更改寻找路径方式。
  3. 我使用的是源码安装,所以修改源码就可以改变函数,使用pip install ultralytics的请找到虚拟环境的库文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

overmind_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值