モデル実行を行った後は、そのモデル オブジェクトを将来的に使えるように保存することをおすすめします。これによりモデルの重複実行を回避して、時間と計算リソースを節約できます。保存したモデル オブジェクトを後の段階で読み込めば、モデルを再実行せずに分析や可視化を続行できます。
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 にする必要があります。
メリディアン serde パッケージを使用する
メリディアン serde パッケージは、メリディアン モデル オブジェクトのプロトコル バッファ(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"