将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: