web-dev-qa-db-ja.com

Keras model.save()とmodel.save_weights()の違いは?

Kerasでモデルを保存するには、次の出力ファイルの違いは何ですか?

  1. model.save()
  2. model.save_weights()
  3. ModelCheckpoint()コールバック内

model.save()から保存されたファイルはmodel.save_weights()からのモデルよりも大きくなりますが、JSONまたはYamlモデルアーキテクチャファイルよりもかなり大きくなります。どうしてこれなの?

これを言い換えると、なぜsize(model.save())+ size(something)= size(model.save_weights())+ size(model.to_json())なのか、その「何か」とは何ですか?

model.save_weights()model.to_json()だけを実行し、model.save()load_model()を実行するよりもこれらからロードする方が効率的ですか?

違いは何ですか?

20
mikal94305

save()は、重みとモデル構造を単一の_HDF5_ファイルに保存します。オプティマイザーの状態なども含まれると思います。次に、そのHDF5ファイルをload()とともに使用して、重みを含むモデル全体を再構築できます。

save_weights()は、重みをHDF5にのみ保存し、他には何も保存しません。 JSONファイルからモデルを再構築するには、追加のコードが必要です。

12