Neural network 是否可以加载与model.module.state_dict()一起存储的模型,但与model.state_dict()一起加载

Neural network 是否可以加载与model.module.state_dict()一起存储的模型,但与model.state_dict()一起加载,neural-network,pytorch,Neural Network,Pytorch,我想问一个问题,我用两个GPU训练了一个模型,并用 model.module.state_dict(),现在我想在一个gpu中加载这个模型,我可以直接用model.state_dict()加载这个经过训练的模型吗 提前谢谢 您可以参考问题 您可以添加nn.DataParallel以进行加载。或者像这样更改密钥命名 # original saved file with DataParallel state_dict = torch.load('myfile.pth.tar') # create n

我想问一个问题,我用两个GPU训练了一个模型,并用 model.module.state_dict(),现在我想在一个gpu中加载这个模型,我可以直接用model.state_dict()加载这个经过训练的模型吗

提前谢谢

您可以参考问题

您可以添加
nn.DataParallel
以进行加载。或者像这样更改密钥命名

# original saved file with DataParallel
state_dict = torch.load('myfile.pth.tar')
# create new OrderedDict that does not contain `module.`
from collections import OrderedDict
new_state_dict = OrderedDict()
for k, v in state_dict.items():
    name = k[7:] # remove `module.`
    new_state_dict[name] = v
# load params
model.load_state_dict(new_state_dict)
但是,当您使用
model.module.state\u dict()
而不是
model.state\u dict()
保存模型时,名称可能不同。如果上述两种方法不起作用,请尝试打印保存的dict和model,以查看需要更改的内容。像

state_dict = torch.load('myfile.pth.tar')
print(state_dict)
print(model)