在多个GPU上训练的模型,在CPU上加载

在服务器上使用两块显卡训练的模型,训练代码中有这句

model = torch.nn.DataParallel(model).cuda()

在自己的电脑上加载模型的时候,因为电脑只有CPU,所以需要在加载时指明cpu

checkpoint = torch.load(args.model, map_location='cpu')

然后报错“unexpected module.conv.weight…”
然后在下面这句话中加入strict=False

model.load_state_dict(checkpoint['state_dict'], strict=False)

不报错了,但是问题来了——加载出来的模型不正确,因为预测的结果根本不对!
不知道为啥。。。
有些问题放一放说不定哪天就找到正确方法了:
在定义模型之后加入这句代码,总算好了

model = torch.nn.DataParallel(model)

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