Kerasのモデルの保存
pickleでは保存できない
Kerasのモデルを保存したい
以前に機械学習モデルの保存方法という記事を書いて、同じようにKerasのモデルも保存しようと思ったらどうにもエラーが出る。
せっかく時間をかけて育てたモデルもNoteBookやらスクリプトやらを破棄したら次回使うときにまた育て直しとなる。凝ったモデルを作るとfit
にかかる時間もなかなか無視できないほどになるので、いったん保存しておこうとpickle(joblib)
を使って保存を試みたらこのようなエラーが出た。
TypeError: can't pickle _thread.RLoc
どうしたものかと探していたら公式のFAQに回答があった。
保存の方法は至ってシンプル。model.save(fname)
としたらいいだけ
# なんかしらの学習処理 history = model.fit(..................) # モデルの保存 model.save("my_keras_model.hdf5")
もちろん呼び出しもできる
from keras.models import load_model model = load_model("my_keras_model.hdf5")
やっぱり公式ドキュメントは見ておくべきですよね。