トレーニングしたモデルからウェイトを保存およびロードしようとしています。
モデルの保存に使用するコードは次のとおりです。
TensorBoard(log_dir='/output')
model.fit_generator(image_a_b_gen(batch_size), steps_per_Epoch=1, epochs=1)
model.save_weights('model.hdf5')
model.save_weights('myModel.h5')
これが不適切な方法である場合、またはより良い方法がある場合はお知らせください。
しかし、これを使用してそれらをロードしようとすると、
from keras.models import load_model
model = load_model('myModel.h5')
しかし、私はこのエラーが発生します:
ValueError Traceback (most recent call
last)
<ipython-input-7-27d58dc8bb48> in <module>()
1 from keras.models import load_model
----> 2 model = load_model('myModel.h5')
/home/decentmakeover2/anaconda3/lib/python3.5/site-
packages/keras/models.py in load_model(filepath, custom_objects, compile)
235 model_config = f.attrs.get('model_config')
236 if model_config is None:
--> 237 raise ValueError('No model found in config file.')
238 model_config = json.loads(model_config.decode('utf-8'))
239 model = model_from_config(model_config,
custom_objects=custom_objects)
ValueError: No model found in config file.
私が間違っているかもしれないことに関する提案はありますか?前もって感謝します。
やりたいことを正確に説明したYouTubeビデオを次に示します。 Kerasモデルを保存して読み込む
Kerasが利用できる3つの異なる保存方法があります。これらについては、上記のビデオリンク(例とともに)と以下で説明します。
まず、エラーが発生する理由は、load_model
を間違って呼び出しているためです。
モデルの重みを保存およびロードするには、最初に使用します
model.save_weights('my_model_weights.h5')
表示したとおりに重みを保存します。重みをロードするには、最初にモデルを構築し、次にモデルでload_weights
を呼び出す必要があります。
model.load_weights('my_model_weights.h5')
別の保存方法はmodel.save(filepath)
です。このsave
関数は以下を保存します。
この保存されたモデルをロードするには、次を使用します。
from keras.models import load_model
new_model = load_model(filepath)'
最後に、model.to_json()
は、モデルのアーキテクチャのみを保存します。アーキテクチャをロードするには、次を使用します
from keras.models import model_from_json
model = model_from_json(json_string)
weightsをロードするには、最初にモデルが必要です。それは違いない:
existingModel.save_weights('weightsfile.h5')
existingModel.load_weights('weightsfile.h5')
モデル全体を保存およびロードする場合(多くの場合、これは機能せず、理由はわかりません):
model.save_model('filename')
model = load_model('filename')