Kerasにおける重み/モデルの保存、読み込みについて

Kerasにおける重み/モデルの保存、読み込みについてご紹介します。

条件

  • Python 3.7.0
  • Keras 2.1.2

Kerasにおける保存/読み込み

Kerasでは、混同しやすい保存/読み込みメソッドが存在します。

ちぐはぐな使い方をすると、読み込みの際に以下のようなエラーが出力され失敗します。

  • 重みを保存(model.save_weights())して、モデルを読み込む(models.load_model)。
ValueError: No model found in config file

重みの保存/読み込み

  • 重みの保存には、「model.save_weights()」を使用します。
  • 重みの読み込みには、「model.load_weights()」を使用します。

model.save_weights(filepath): モデルの重みをHDF5形式のファイルに保存します。

model.load_weights(filepath, by_name=False): (save_weightsによって作られた) モデルの重みをHDF5形式のファイルから読み込みます。デフォルトでは、アーキテクチャは不変であることが望まれます。(いくつかのレイヤーが共通した)異なるアーキテクチャに重みを読み込む場合、by_name=Trueを使うことで、同名のレイヤーにのみ読み込み可能です。

出典:Keras Documentation

モデルの保存/読み込み

  • モデルの保存には、「model.save()」を使用します。
  • モデルの読み込みには、「model.load_model()」を使用します。

model.save(filepath):単一のHDF5ファイルにKerasのモデルを保存できます。このHDF5ファイルは以下を含みます。

・再構築可能なモデルの構造
・モデルの重み
・学習時の設定 (loss,optimizer)
・optimizerの状態.これにより,学習を終えた時点から正確に学習を再開できます

keras.models.load_model(filepath):モデルを再インスタンス化できます。 load_modelは、学習時の設定を利用して、モデルのコンパイルも行います(ただし、最初にモデルを定義した際に、一度もコンパイルされなかった場合を除く)。

出典:Keras Documentation

参考

Keras Documentation:モデルについて

https://keras.io/ja/models/about-keras-models/

Keras Documentation:Keras modelを保存するには?

https://keras.io/ja/getting-started/faq/

How to Save and Load Your Keras Deep Learning Model

How to Save and Load Your Keras Deep Learning Model

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です