Missing key(s) in state_dict: “features.conv1.weight“

试了网上很多解决方法,最终试出了可行的方法:

把原来的代码:

model.load_state_dict(checkpoint['state_dict'])

替换成:

new_state_dict = OrderedDict()
for k, v in checkpoint.items():
    if 'denseblock' in k:
        param = k.split(".")
        k = ".".join(param[:-3] + [param[-3] + param[-2]] + [param[-1]])
    new_state_dict[k] = v
    model.load_state_dict(new_state_dict)

可能是版本问题导致的不兼容,需要将键名替换成模型加载权重时所需要的键名

当我以为结束了的时候。。。

错误变成了:Missing key(s) in state_dict: "features.conv0.weight"

又是一番折腾,最终在代码:

model.load_state_dict(new_state_dict,False)

加了一个False,解决了

其实还没结束:)

EOFError: Ran out of input

又出现了新的错误

很迷惑的一个错误,直到我找到了这篇博客:(4条消息) AttributeError: Can't pickle local object 'BaseDataset.img_transformer..'_weixin_39450145的博客-CSDN博客

将num_workers的值改成了0

test_loader = DataLoader(dataset=test_dataset, batch_size=BATCH_SIZE,
                         shuffle=False, num_workers=0, pin_memory=True)

解决以上3个问题用了大半天时间,好在CheXNet-master终于可以跑了[撒花]由于显存不够,我只能把BATCH_SIZE直接改成了2(BATCH_SIZE=8的时候显存还是不够),之后打算把代码放到乌邦图上运行,windows太占显存了。

你可能感兴趣的:(深度学习)