赞
踩
torch.load()的作用:从文件加载用torch.save()保存的对象。
api:
函数格式为:torch.load(f, map_location=None, pickle_module=pickle, **pickle_load_args),一般我们使用的时候,基本只使用前两个参数。
参数:
f: 类似文件的对象(必须实现read(),:meth ' readline ',:meth ' tell '和:meth ' seek '),或者是包含文件的字符串。
map_location: 函数、torch.device或者字典指明如何重新映射存储位置。
pickle_module : 用于unpickling元数据和对象的模块(必须匹配用于序列化文件的pickle_module)。
pickle_load_args: 传递给pickle_module.load()和pickle_module.Unpickler()的可选关键字参数。
模型的保存
模型保存有两种形式,一种是保存模型的state_dict(),只是保存模型的参数。那么加载时需要先创建一个模型的实例model,之后通过torch.load()将保存的模型参数加载进来,得到dict,再通过model.load_state_dict(dict)将模型的参数更新。
另一种是将整个模型保存下来,之后加载的时候只需要通过torch.load()将模型加载,即可返回一个加载好的模型。
具体可参考:PyTorch模型的保存与加载:https://blog.csdn.net/qq_52852138/article/details/123339337?spm=1001.2014.3001.5502
默认加载方式,使用cpu加载cpu训练得出的模型或者用gpu调用gpu训练的模型:
torch.load('tensors.pt')
将全部Tensor全部加载到cpu上:
torch.load('tensors.pt', map_location=torch.device('cpu'))
使用函数将所有张量加载到CPU(适用在GPU训练的模型在CPU上加载):
torch.load('tensors.pt', map_location=lambda storage, loc: storage)
将所有张量加载到第一块GPU(在CPU训练在GPU加载):
torch.load('tensors.pt', map_location=lambda storage, loc: storage.cuda(1))
将张量从GPU 1映射到GPU 0(第一块GPU训练,第二块GPU加载):
torch.load('tensors.pt', map_location={'cuda:1':'cuda:0'})
根据你的设备,将张量加载到你当前设备上:
torch.load('modelparameters.pth', map_location = device)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。