在使用yoloV5训练自定义数据集/运行train.py时,提示如下报错:
Traceback (most recent call last):
File "train.py", line 387, in <module>
train(hyp)
File "train.py", line 292, in train
dataloader=testloader)
File "*\yolov5_material\yolov5-master\test.py", line 168, in test
plot_images(img, output_to_target(output, width, height), paths, f, names) # predictions
File "*\yolov5_material\yolov5-master\utils\utils.py", line 1008, in plot_images
cls = names[cls] if names else cls
IndexError: list index out of range
这个报错是怎么形成的呢?要知道我提前运行过一个只有10个图片和标签的训练集做测试 ,是可以通过没问题的。
也就是如果你跟我一样能确定并不是安装问题,也不是环境问题,那只能是参数问题。
经检查后发现,原来是我 coco128.yaml 的 name= [] 没有对应修改正确。也就是和txt格式的标签内容不符。
修正后重新运行程序,问题解决。
这里多说一句,我是从labelImg的github上获得的labelImg.py,在下载的同一个文件夹中会有个*\data\predefined_classes.txt的文件,一开始设定好了需要的类别,结果在程序的交互界面操作的时候临时又增加了一个类别,所以运行train.py忘记修改对应的coco128.yaml的文件了,故会产生此报错。这里也当做记个笔记给自己提个醒。