当前位置:   article > 正文

Torch.load()

torch.load

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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/103381
推荐阅读
相关标签
  

闽ICP备14008679号