yolov8相对路径

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于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的请找到虚拟环境的库文件。
### YOLOv8 YAML 配置文件结构详解 #### 2.1 许可声明与模型描述 Ultralytics YOLO 🚀, AGPL-3.0 license 表明此代码由 Ultralytics 发布并遵循 AGPL-3.0 开源协议。YOLOv8 object detection model 描述了这是一个用于目标检测的模型,采用 P3 至 P5 层作为输出特征图[^1]。 #### 2.2 类别数量设定 `nc` `nc: 80` 定义了模型能够识别的目标类别总数,默认情况下为 80 类,这与 COCO 数据集中的分类数目相匹配[^2]。 #### 2.3 模型尺度配置 `scales` `scales` 参数指定了不同尺寸版本的 YOLOv8 模型,具体如下: - **n**: nano 版本 (YOLONano),体积最小且速度最快; - **s**: small 版本 (YOLOS),相对小巧但仍保持一定性能平衡; - **m**: medium 版本 (YOLOM),提供较好的精度与效率折衷方案; - **x**: extra-large 版本 (YOLOX),拥有最佳的表现力但也最耗资源; 这些变体通过调整网络深度、宽度以及最大通道数来实现差异化的架构设计。 ```yaml # Example of a simplified yolov8.yaml structure train: ./data/train/ val: ./data/valid/ nc: 80 # number of classes names: ['person', 'bicycle', ... , 'toothbrush'] # class names list model: depth_multiple: 0.33 # Model depth multiple. width_multiple: 0.50 # Model width multiple. head: anchors: - [10,13, 16,30, 33,23] # Anchors for the smallest scale feature map - [30,61, 62,45, 59,119] # Medium scale... - [116,90, 156,198, 373,326] # Largest scale... training: imgsz: 640 # Image size during training and inference batch_size: 16 # Batch size used in SGD optimizer ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

E1ainay

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

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

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

打赏作者

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

抵扣说明:

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

余额充值