ModelCheckpointで保存した重みを tensorflow.keras.models.load_model で読み込むと表題のエラー。
ModelCheckpoint の save_weight_only = True にしていたので、重みデータしか保存されておらず、model の構造が含まれていなかったのが原因。
save_weights_only | if True, then only the model’s weights will be saved (model.save_weights(filepath) ), else the full model is saved (model.save(filepath) ). |
save_weight_only = False にすると、ちゃんと load_model 出来るようになった。
ただし、モデルの構造データも含まれるため保存される重みファイル .h5 の容量が増えてしまう。
ストレージの読み書き量を出来るだけ減らしたい(クラウドで課金される、PCの保存領域が少ない)のであれば、save_weight_only = True のままにしておき、トレーニング時と同じモデルを定義してから load_model すればOK。
参考
tf.keras.callbacks.ModelCheckpoint | TensorFlow v2.16.1
Callback to save the Keras model or model weights at some frequency.
コメント