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 保存的对象,请确保你使用了相同的协议。

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

This interface is a wrapper of pickle.dump. If you want to use pickle, See pickle for more information about how to set pickle_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)