我已经使用Keras来实现两个深度学习模型。这两个模型产生了较高的准确率。另外,我创建了一个多输入模型,将两个模型连接在一起,但是出现了这个错误
RuntimeError: ('The name "block1_conv1" is used 2 times in the model. All layer names should be unique.
因此,我将第二个模型中的图层重命名为:
for layer in model2.layers:
layer.name = layer.name + str("2")
在第二个模型中重命名图层后,第二个模型的准确性降低。当我删除重命名代码时,第二个模型产生一个 高精确度。重命名模型的图层前后,第二个模型的结构没有差异。但是我不为什么在重命名图层后第二个模型的性能会改变 !!。
此外,我尝试仅重命名第一个模型,并且遇到了相同的问题。
您有解决此问题的解决方案吗?
还有另一种更改图层名称的方法吗?
model = vgg16.VGG16(include_top=False, input_shape=(64,64,3))
in = model.input
out = model.output
model2 = vgg16.VGG16(include_top=False, input_shape=(64,64,3))
in2 = model2.input
out2 = model2.output
for layer in model2.layers:
layer.name = layer.name + str("2")
merged = concatenate([out, out2])
merged = Dense(1024, activation='relu')(merged)
merged = Dense(num_classes, activation='softmax')(merged)
model_fusion = Model([in, in], merged)