モデル永続化

本項では、モデル永続化について、SAMPO/FABとsklearn-fabにおける実現方法およびスクリプトの差異を示します。

SAMPO/FAB

  • SAMPO API export_process関数によりプロセスを保存し、import_process関数によりロードします。

  • SAMPO/FABでは、プロセス内にモデルだけでなく、学習用データや属性データも含みます。

sklearn-fab

  • joblibを利用し、学習済みのestimatorインスタンスをモデルとして保存、ロードします。

  • 学習時に使用したデータを併せて保存する場合、データがpandas.DataFrame形式であればpandas.DataFrame.to_csv()を使用します。

SAMPO/FAB

sklearn-fab

import os

# プロセスの保存
output_dir = './export_dir'
process_store.export_process(pstore_url, train_proc_name, output_dir)

# プロセスのロード
new_pstore_url = './new_pstore'
process_store.create(new_pstore_url)

with os.scandir(output_dir) as exported_processes:
    for entry in exported_processes:
        if entry.is_dir():
            process_store.import_process(new_pstore_url, entry.path)

process_store.list_process_metadata(new_pstore_url)
モデルの保存とロード
import joblib

# モデルの保存
save_estimator_path = 'save_estimator.joblib'
joblib.dump(estimator, save_estimator_path)

# モデルのロード
loaded_estimator = joblib.load(save_estimator_path)
loaded_estimator
データの保存
# データの保存
train_data.to_csv('./train_data.csv', index=False)