torch调用模型推理结果不对分析

此处修改后可用代码:https://github.com/BIGBALLON/CIFAR-ZOO/blob/master/eval.py

1.模型是否导入成功

1.1 问题

Missing key(s) in state_dict: "features.0.weight"
Unexpected key(s) in state_dict: "module.features.0.weight"

例如,如果此时使用的下面命令导入模型:

net.load_state_dict(checkpoint["state_dict"], strict=False)

此处strict参数设置为False(会忽略不匹配的网络层参数)。如何训练时使用的多GPU并行训练的模型名称中,会多"module.",模型可能会导入不成功。

参考:

https://blog.csdn.net/shiwanghualuo/article/details/101756876

https://blog.csdn.net/qq_32998593/article/details/89343507

1.2 解决

    net.load_state_dict({k.replace('module.',''):v for k,v in checkpoint["state_dict"].items()}, strict=True)

2.输入图片预处理

torch常常会使用PIL读取图片,transforms里面的一些预处理(resize、ToTensor等等)。之前验证过PIL与opencv只需要都转为相同的颜色空间,就基本没问题了。

猜你喜欢

转载自blog.csdn.net/qq_35975447/article/details/113879682