KerasでRuntimeError: The name is used 2 times in the model.All layer names should be unique

Kerasで同じモデルを複数使った時に表題のエラー。

model1 = vgg16.VGG16(...)
model2 = vgg16.VGG16(...)

みたいなコードを書いていたら、

RuntimeError: The name is used 2 times in the model.All layer names should be unique.

名前を変えないとダメらしい。

model1.name = 'vgg1'
model2.name = 'vgg2'

今度は別のエラー。

AttributeError: Can't set the attribute "name", likely because it conflicts with an existing read-only @property of the object. Please choose a different name.

name属性はread-onlyになっているらしい。

_nameというアンダーバー付きの隠し属性を設定して回避する。

model1._name = 'vgg1'
model2._name = 'vgg2'

これで解決。

参考

Keras - All layer names should be unique - Stack Overflow
Error when trying to rename a pretrained model on tf.keras - Stack Overflow
Keras rename model and layers - Stack Overflow

コメント

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