(9)训练时报错KeyError: ‘conv1.1.0.weight‘

在使用PyTorch训练模型时,由于预训练模型权重文件与当前网络结构命名不一致导致KeyError。通过对比模型结构和权重,修改加载代码以匹配权重形状,成功解决报错并实现预训练权重的正确加载。
摘要由CSDN通过智能技术生成

将B_mobilenet_yolov4_lite的PANet改为原来的3x3卷积,命名为L_mobilenet-yolov4_VOC,即将B_yolov4的主干网络换为mobilenet,训练时报错:

Traceback (most recent call last):
  File "/home/PycharmProjects/yolov4/L_mobilenet-yolov4_VOC_0717/train.py", line 221, in <module>
    pretrained_dict = {k: v for k, v in pretrained_dict.items() if np.shape(model_dict[k]) == np.shape(v)}
  File "/home/PycharmProjects/yolov4/L_mobilenet-yolov4_VOC_0717/train.py", line 221, in <dictcomp>
    pretrained_dict = {k: v for k, v in pretrained_dict.items() if np.shape(model_dict[k]) == np.shape(v)}
KeyError: 'conv1.1.0.weight'

该问题的错误原因:加载的模型pretrained_dict文件中没有conv1.1.0.weight这个权重内容,打印网络模型和预训练模型的键值,发现键值不同。检查确定所有函数中的主干和权重等选择的都是同一个模型,且加载预训练权重也是mobilenet,即:网络结构一样,但结构命名不同。

尝试1:

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值