megengine.load

load(f, map_location=None, pickle_module=pickle)[源代码]

从文件中加载一个用:func:`~.megengine.save`保存的对象。

参数
  • f – 文件名字符串或一个需要加载的文件对象。

  • map_location – 定义设备映射。具体请参考使用示例。

  • pickle_module – 用于序列化的模块。

返回

None.

注解

如果你要调用 set_default_device, 请在 load. 之前调用它

如果你在不同的Python版本下使用MegEngine

不同的 Python 版本可能使用不同的 DEFAULT/HIGHEST pickle 协议。如果你想在另一个Python版本中 load 保存的对象,请确保你使用了相同的协议。

你可以选择直接使用 ``pickle ``模块

这个接口是:func:pickle.load`的一个封装。如果你想使用`pickle,请参阅 pickle 以了解如何设置`pickle_protocol`的详细信息:

实际案例

这个例子显示了如何将tensor加载到不同的设备:

import megengine as mge

# Load tensors to the same device as defined in model.pkl
mge.load('model.pkl')

# Load all tensors to gpu0.
mge.load('model.pkl', map_location='gpu0')

# Load all tensors originally on gpu0 to cpu0
mge.load('model.pkl', map_location={'gpu0':'cpu0'})

# Load all tensors to cpu0
mge.load('model.pkl', map_location=lambda dev: 'cpu0')

如果你使用的是低版本的 Python(<3.8),你可以使用其他 pickle 模块,如``pickle5``来加载以 pickle 5协议保存的对象:

>>> import pickle5 as pickle  

或者你可以这样使用 ``pickle5``(只用于此接口):

import pickle5
import megengine

megengine.load(obj, pickle_module=pickle5)