Tensorflow/KerasでRuntimeError: Unable to create link (name already exists)

tf.kerasでtrainしていた時、ModelCheckpointのh5ファイルの保存でエラー。

RuntimeError: Unable to create link (name already exists)

h5pyで躓いているらしい。

2.10.0なら上手くいくかもしれないと聞いて試してみたが、エラーは治らなかった。

pip install h5py==2.10.0

エラーに name already exists と出ているので、モデルを構成する各レイヤーの名前を変えてみる。

for i, w in enumerate(my_model.weights):
    split_name = w.name.split('/')
    new_name = split_name[0] + '_' + str(i) + '/' + split_name[1] + '_' + str(i)
    my_model.weights[i]._handle_name = new_name

しかし上手く行かない。

h5の変わりに、SavedModelを使うと上手く保存することが出来た。

tf.keras.callbacks.ModelCheckpoint(save_path.ckpt, ...)

参考

RuntimeError: Unable to create link (name already exists) during model saving with ModelCheckpoint · Issue #27688 · tensorflow/tensorflow
System information Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes O...
Getting the RuntimeError: Unable to create link (name already exists) with a multi-input Keras model
I'm unable to save a Keras model as I get the error mentioned in the title. I have been using tensorflow-gpu. My model c...
Save and load models  |  TensorFlow Core

コメント

タイトルとURLをコピーしました