报错:
Traceback (most recent call last):
File "D:\ProgramData\yolov5-7.0\train.py", line 633, in <module>
main(opt)
File "D:\ProgramData\yolov5-7.0\train.py", line 527, in main
train(opt.hyp, opt, device, callbacks)
File "D:\ProgramData\yolov5-7.0\train.py", line 111, in train
data_dict = data_dict or check_dataset(data) # check if None
^^^^^^^^^^^^^^^^^^^
File "D:\ProgramData\yolov5-7.0\utils\general.py", line 515, in check_dataset
if isinstance(data['names'], (list, tuple)): # old array format
~~~~^^^^^^^^^
TypeError: string indices must be integers, not 'str'
Process finished with exit code 1
解决:
给冒号后面加上空格
原因是没有空格,就识别成了字符串,而不是字典,正如报错原因写的,主要是实在没想到是这儿的问题。
最开始我的数据集配置是这样,如图,并没有像各教程贴里的图一样变色,但我自己也没在意。
train:D:\ProgramData\UA-DETRAC-G2\labels\train
val:D:\ProgramData\UA-DETRAC-G2\labels\val
nc:4
names:['car', 'bus', 'van', 'others']
运行train.py出现报错,怎么也没查到有人和我有一样的问题,后来突然想到会不会是这里有问题(想起来和教程里不一样的地方了),回去试着给冒号后面加上空格,果然变色,一切正常了。
如下图。