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)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值