megengine.save#
- save(obj, f, pickle_module=pickle, pickle_protocol=pickle.DEFAULT_PROTOCOL)[源代码]#
保存对象为磁盘文件,对象类型必须为
Module
,Module.state_dict
或:attr:.Optimizer.state_dict, 更多细节参考 保存与加载模型(S&L)- 参数:
obj – 待保存的对象
f – 文件名字符串或一个需要保存的文件对象。
pickle_module – 用于序列化的模块。
pickle_protocol – pickling将用到的协议版本
如果你在不同的Python版本下使用MegEngine
不同的 Python 版本可能使用不同的 DEFAULT/HIGHEST pickle 协议。如果你想在另一个Python版本中
load
保存的对象,请确保你使用了相同的协议。This interface is a wrapper of
pickle.dump
. If you want to usepickle
, Seepickle
for more information about how to setpickle_protocol
:pickle.HIGHEST_PROTOCOL
- 可用的最高协议版本。pickle.DEFAULT_PROTOCOL
- 用于序列化的默认协议版本。
实际案例
如果想用当前版本python 不支持的更高版本的协议保存对象,可以安装其他pickle模块替换内置的pickle ,以pickle5为例
>>> import pickle5 as pickle
其是pickle 5 (PEP 574)的后向移植以及一些其他的pickle 更改,所以可以用pickle 5保存对象并在Python 3.8+加载
或者你可以这样使用 ``pickle5``(只用于此接口):
import pickle5 import megengine megengine.save(obj, f, pickle_module=pickle5, pickle_protocol=5)