【bug记录】yolov7 AssertionError: train: No labels in ...train_list.cache. Can not train without

在尝试使用Yolov7训练VisDrone数据集时遇到警告,提示没有在train_list.cache中找到标签。解决方案是检查train_list.txt中的路径是否为绝对路径,并提供了一段Python代码来生成包含绝对路径的test_list.txt文件。
摘要由CSDN通过智能技术生成

问题描述

我在用yolov7跑自己的visdrone数据集时,遇到了如下报错:

train: WARNING: No labels found in datasets/VisDrone/train_list.cache. See https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data                                                 
train: New cache created: datasets/VisDrone/train_list.cache                                                                                                                            
Traceback (most recent call last):                                                                                                                                                      
  File "train.py", line 616, in <module>                                                                                                                                                
    train(hyp, opt, device, tb_writer)                                                                                                                                                  
  File "train.py", line 245, in train                                                                                                                                                   
    dataloader, dataset = create_dataloader(train_path, imgsz, batch_size, gs, opt,                                                                                                     
  File "/disk2/lxs/yolov7/utils/datasets.py", line 69, in create_dataloader                                                                                                             
    dataset = LoadImagesAndLabels(path, imgsz, batch_size,                                                                                                                              
  File "/disk2/lxs/yolov7/utils/datasets.py", line 403, in __init__                                                                                                                     
    assert nf > 0 or not augment, f'{prefix}No labels in {cache_path}. Can not train without labels. See {help_url}'                                                                    
AssertionError: train: No labels in datasets/VisDrone/train_list.cache. Can not train without labels. See https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data   


解决方案:

提示:如果train_list.txt中使用的是相对路径,建议全部改为绝对路径。生成train_list.txt代码如下

# -*-coding:utf-8-*-
# 生成文件夹中所有文件的路径到txt
import os


def listdir(path, list_name):  # 传入存储的list
    for file in os.listdir(path):
        file_path = os.path.join(path, file)
        if os.path.isdir(file_path):
            listdir(file_path, list_name)
        else:
            list_name.append(file_path)


list_name = []
path = '/disk2/lxs/yolov7/datasets/VisDrone/images/test/'  # 文件夹路径
listdir(path, list_name)
print(list_name)

with open('./datasets/VisDrone/test_list.txt', 'w') as f:  # 要存入的txt
    write = ''
    for i in list_name:
        write = write + str(i) + '\n'
    f.write(write)
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值