(32)ValueError: 26 is not in list

问题描述:简化yolov4的程序原来输出的head部分是13x13和52x52两个,现在去掉一个下采样,改为26x26和52x52两个,修改yolo4.py之后,运行train.py报错:

Epoch 1/50:   0%|          | 0/209 [00:00<?, ?it/s<class 'dict'>]Start Train
Epoch 1/50:   0%|          | 0/209 [00:05<?, ?it/s<class 'dict'>]
Traceback (most recent call last):
  File "/home/PycharmProjects/yolov4/3-PA-tiny/train.py", line 372, in <module>
    Val_Loss = fit_one_epoch(net, yolo_loss, epoch, epoch_size, epoch_size_val, gen, gen_val, Freeze_Epoch, Cuda)
  File "/home/PycharmProjects/yolov4/3-PA-tiny/train.py", line 73, in fit_one_epoch
    loss_item, num_pos = yolo_loss(outputs[i], targets)
  File "/home/.conda/envs/ultralytics_yolov3/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/PycharmProjects/yolov4/3-PA-tiny/nets/yolo_training.py", line 188, in forward
    mask, noobj_mask, t_box, tconf, tcls, box_loss_scale_x, box_loss_scale_y = self.get_target(targets, scaled_anchors,in_w, in_h,self.ignore_threshold)
  File "/home/PycharmProjects/yolov4/3-PA-tiny/nets/yolo_training.py", line 238, in get_target
    anchor_index = [[0,1,2],[3,4,5]][self.feature_length.index(in_w)]
ValueError: 26 is not in list

问题解决:

定位到yolo_training.py中,117行需要修改head对应的特征图尺寸,原来是: 

self.feature_length = [img_size[0]//32,img_size[0]//8]

修改为: 

self.feature_length = [img_size[0]//16, img_size[0]//8]

问题解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值