Python
DeepLearning
Keras

Kerasのモデルを保存する方法

Kerasのモデルを保存するとき、pickleを使うと以下のエラーが出ました。

TypeError: can't pickle _thread.lock objects

どうやらKerasのモデルを保存するのにpickleやcPickleを使うのは非推奨らしいです。
他にもおなじことをやろうとしていた人が世界中にいたみたい。=>参照

さっそく結論ですが、
ここにあるように、保存・読み込み時はkerasに備え付けのsave,load_modelを使うと良いらしい。

ただh5pyというパッケージがないとsaveするときに怒られるので、saveする前に

pip install h5py

するとよいです。

保存・読み込みはこんな感じ。

from keras.models import load_model

model.save('/path/to/model.h5')
del model
model = load_model('/path/to/model.h5')

短いですが終ります!