YOLOX报错:in loadResif ‘caption‘ in anns[0]:IndexError: list index out of range

报错提示

Traceback (most recent call last):
File “train_yolox.py”, line 565, in
box_ap = eval(_decode, val_images, cfg.val_pre_path, cfg.val_path, cfg.eval_cfg[‘eval_batch_size’], _clsid2catid, cfg.eval_cfg[‘draw_image’], cfg.eval_cfg[‘draw_thresh’])
File “/home/aistudio/work/tools/cocotools_yolo.py”, line 184, in eval
box_ap_stats = bbox_eval(anno_file)
File “/home/aistudio/work/tools/cocotools.py”, line 99, in bbox_eval
map_stats = cocoapi_eval(outfile, ‘bbox’, coco_gt=coco_gt)
File “/home/aistudio/work/tools/cocotools.py”, line 69, in cocoapi_eval
coco_dt = coco_gt.loadRes(jsonfile)
File “/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/pycocotools/coco.py”, line 329, in loadRes
if ‘caption’ in anns[0]:
IndexError: list index out of range

原因

逐行代码排查了,发现是因为没有成功预测到结果,导致bbox_data为空,写入的JSON文件也为空,所以loadRes出现问题。应该是训练不充分导致的错误…

解决方案

试过修改cocotools的代码了,发现没什么好办法,这个也看运气,有时候能出预测结果有时候不能……最稳妥的是老老实实多迭代几轮。

据我观测,没能得到预测结果的原因主要有两个:①迭代次数太少 ②学习率过大梯度爆炸(在训练时主要体现在训练莫名奇妙的中止,前提是确认代码真的没有问题)
当然,还有运气(苦笑)

ps:可以通过添加输出的方式查看bbox_data是否有结果。

在这里插入图片描述

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值