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
保存的对象,请确保你使用了相同的协议。这个接口是:func:pickle.load`的一个封装。如果你想使用`pickle,请参阅
pickle
以了解如何设置`pickle_protocol`的详细信息:pickle.HIGHEST_PROTOCOL
- 可用的最高协议版本。pickle.DEFAULT_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)