DISTRICT 37

なにか

Kerasのモデルの保存

pickleでは保存できない

Kerasのモデルを保存したい

以前に機械学習モデルの保存方法という記事を書いて、同じようにKerasのモデルも保存しようと思ったらどうにもエラーが出る。

dragstar.hatenablog.com

せっかく時間をかけて育てたモデルもNoteBookやらスクリプトやらを破棄したら次回使うときにまた育て直しとなる。凝ったモデルを作るとfitにかかる時間もなかなか無視できないほどになるので、いったん保存しておこうとpickle(joblib)を使って保存を試みたらこのようなエラーが出た。

TypeError: can't pickle _thread.RLoc

どうしたものかと探していたら公式のFAQに回答があった。

FAQ - Keras Documentation

保存の方法は至ってシンプル。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")

やっぱり公式ドキュメントは見ておくべきですよね。

Keras Documentation