保存并加载模型对象

执行模型运行作业后,我们建议保存模型对象,以供将来使用。这有助于避免重复运行模型,节省时间和计算资源。保存模型对象后,可在后续阶段加载该对象,继续进行分析或进行可视化处理,而无需重新运行相应模型。

使用 Python pickle

保存模型对象

运行以下命令,以保存模型对象:

file_path = f'{PATH}/{FILENAME}.pkl'
model.save_mmm(mmm, file_path)

其中:

  • PATH 表示路径,用于指示文件的位置。
  • FILENAME 是文件的名称。文件扩展名必须为 PKL。

加载模型对象

运行以下命令,以加载已保存的模型:

file_path = f'{PATH}/{FILENAME}.pkl'
mmm = model.load_mmm(file_path)

其中:

  • PATH 表示路径,用于指示文件的位置。
  • FILENAME 是文件的名称。文件扩展名必须为 PKL。

使用 Meridian serde 软件包

Meridian serde 软件包支持将 Meridian 模型对象序列化和反序列化为 Protocol Buffers (protobuf) 文件。格式(二进制或文本)由文件名中指定的文件扩展名决定。

格式包括:

  • 二进制 Protobuf (.binpb) - 以紧凑的 protobuf 传输格式保存。非常适合二进制传输和存储。
  • 文本 Protobuf(.txtpb.textproto)- 以人类可读的文本表示形式保存。非常适合用于调试。

保存模型对象

运行以下命令,以保存模型对象:

from meridian.schema.serde import meridian_serde

mmm = model.Meridian(input_data=input_data, model_spec=model_spec)
meridian_serde.save_meridian(mmm, "model.binpb") # or "model.txtpb"

加载模型对象

运行以下命令,以加载模型对象:

from meridian.schema.serde import meridian_serde

mmm = meridian_serde.load_meridian("model.binpb") # or "model.txtpb"