yolov5刚开始训练就报错,string indices must be integers, not ‘str‘

报错:

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出现报错,怎么也没查到有人和我有一样的问题,后来突然想到会不会是这里有问题(想起来和教程里不一样的地方了),回去试着给冒号后面加上空格,果然变色,一切正常了。

        如下图。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值