1、问题
YOLOV7训练报错:
Exception: Dataset not found.
2、解决方案
本人经过多次,才调通模型
yolov7与yolov5数据集有巨大的区别。
第一:把包含数据集的文件夹放入yolov7模型文件内,yolov7-main里面包含数据集文件夹dataset,这个文件夹是自己创建的,用来存储数据集
文件结构如下:
第二、数据集文件结构
大家可以发现,yolov7数据集结构和yolov5有很大的区别
第三、格外注意,txt文件的路径只需要从当前目录开始,就是从模型文件目录开始
(此处我曾设定为相对路径,即开头 …/dataset,报错)
(我也曾设定完整的路径,报错)
因为yolov7比较奇怪,都是以模型文件为主目录
第四、数据的yaml文件内设置的路径为完整的路径
(此处我曾设定为相对路径,及…/dataset开头,报错)
(此处我也曾设定为绝对路径,但以dataset开头,报错)
第五、训练文件train.py参数修改
注意,此处参数设定都要以模型文件为主目录,不需要加相对路径
3、给大家提供生成YOLOv7的txt标签文件的代码
##制作label list
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 = 'dataset/yolov7_new_data/images/val' # 文件夹路径
listdir(path, list_name)
print(list_name)
with open('val.txt', 'w') as f: # 要存入的txt
write = ''
for i in list_name:
write = write + str(i) + '\n'
f.write(write)
代码跑不通就看这个