モデル永続化¶
本項では、モデル永続化について、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)
|