AssertionError: train: No labels in D:\yolov7-main\mydata\train.cache. Can not train without labels. See https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data
刚接触yolov7,求解
在yolov7下训练自己的数据集,报了以下错误
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- 专家-皆知 2024-04-30 21:23关注
参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。
遇到这个问题,意味着在尝试训练YOLOv7时,程序没有找到对应的训练标签数据。YOLOv7(虽然你提到的是yolov5的错误提示,但处理方式相似)需要在开始训练之前,将数据集的标签处理好并存储在一个缓存文件中,通常是一个
.cache
文件。下面我会指导你如何解决这个问题。步骤1:检查数据集结构
确保你的数据集按照YOLOv7(或类似YOLOv5的结构)所期望的格式组织:
- train/images: 存放训练集的图像。
- train/labels: 存放训练集图像对应的标签文件,每个文件名与图片文件名对应,内容为YOLO格式的标注。
步骤2:创建标签缓存
错误信息提示没有找到
D:\yolov7-main\mydata\train.cache
,这通常是因为没有正确生成或路径不正确。你需要运行数据集准备脚本来生成这个缓存文件。如果你使用的是YOLOv7的命令行工具,通常是这样的步骤:-
确保标签格式正确:YOLO格式的标签文件每一行包含类别索引、中心点x坐标、中心点y坐标、宽度、高度,所有值都是相对于图像宽度和高度的比例,例如:
0 0.5 0.5 0.2 0.2
这表示一个类别为0的对象,中心点位于图像的中心,对象的宽度和高度分别是图像宽度和高度的20%。
-
生成缓存:找到YOLOv7项目中的脚本用于处理数据集,这通常是一个Python脚本,比如
dataset.py
或是在命令行中直接调用的命令。你需要运行一个类似于以下的命令来生成缓存文件:python tools/dataset.py create mydata train D:\yolov7-main\mydata\images\train D:\yolov7-main\mydata\labels\train
注意替换
mydata
、图像和标签的路径为你实际的数据集路径。
步骤3:检查脚本配置
确保你的训练配置文件(如
train.py
或.yaml
配置文件)中的数据集路径设置正确,指向你的训练数据和对应的缓存文件。步骤4:错误排查
- 确认路径中没有拼写错误。
- 检查是否有权限访问指定的文件夹和文件。
- 确保所有必需的标签文件都存在,并且格式正确。
- 如果使用的是特定版本的YOLOv7,查看其官方文档或GitHub仓库的最新说明,可能有额外的步骤或已知问题。
代码示例
这里没有直接提供生成缓存的代码,因为具体的脚本取决于YOLOv7的版本和你使用的实现方式。通常,这涉及到调用项目内部的脚本或者直接修改训练脚本来自动处理数据集准备。遵循上述步骤,并参照你下载的YOLOv7仓库中的说明进行操作。
如果你在执行这些步骤后仍然遇到问题,提供更具体的错误信息或描述你已经尝试的步骤,以便进一步帮助你。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
- ¥20 遥感植被物候指数空间分布图制作
- ¥15 安装了xlrd库但是import不了…
- ¥20 Github上传代码没有contribution和activity记录
- ¥20 SNETCracker
- ¥15 数学建模大赛交通流量控制
- ¥15 为什么我安装了open3d但是在调用的时候没有报错但是什么都没有发生呢
- ¥50 paddleocr最下面一行似乎无法识别
- ¥15 求某类社交网络数据集
- ¥15 靶向捕获探针方法/参考文献