web-dev-qa-db-ja.com

keras.callbacks.Historyを保存してロードする

Kerasを使用してディープニューラルネットをトレーニングし、keras.callbacks.Historyタイプの履歴オブジェクトを保存して後でロードする方法を探しています。これが設定です:

history_model_1 = model_1.fit_generator(train_generator,
                          steps_per_Epoch=100,
                          epochs=20,
                          validation_data=validation_generator,
                          validation_steps=50)

history_model_1は、別のPythonセッション中に保存およびロードする変数です。

10
balkon16

history_model_1はコールバックオブジェクトです。あらゆる種類のデータが含まれており、シリアル化できません。

ただし、実際に保存するすべての値を含む辞書が含まれています(コメントを参照)。

import json
# Get the dictionary containing each metric and the loss for each Epoch
history_dict = history_model_1.history
# Save it under the form of a json file
json.dump(history_dict, open(your_history_path, 'w'))

これで、50番目のエポックでの損失の値にアクセスできます。

print(history_dict['loss'][49])

それをリロードしてください

history_dict = json.load(open(your_history_path, 'r'))

これがお役に立てば幸いです。

12
Nassim Ben