此处修改后可用代码: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只需要都转为相同的颜色空间,就基本没问题了。