我们在构造好了一个模型后,可能要加载一些训练好的模型参数。举例子如下:
假设 trained.pth 是一个训练好的网络的模型参数存储
model = Net()是我们刚刚生成的一个新模型,我们希望model将trained.pth中的参数加载加载进来,但是model中多了一些trained.pth中不存在的参数,如果使用下面的命令:
state_dict = torch.load('trained.pth')model.load_state_dict(state_dict)
会报错,说key对应不上,因为model你强人所难,我堂堂trained.pth没有你的那些个零碎玩意,你非要向我索取,我上哪给你弄去。
但是model不干,说既然你不能完全满足我的需要,那么你有什么我就拿什么吧,怎么办呢?下面的指令代码就行了。
model.load_state_dict(state_dict, strict=False)
这个博主好有趣,通俗易懂
原文链接:https://blog.csdn.net/t20134297/article/details/110533007