我正在尝试在 Keras 中连接两个具有相同名称的预训练模型。到目前为止,我已经重命名了所有图层,如下所示:
model1 = load_model('./new/CNN_Level1_2Dense_1024ML_Prep_ALL')
model1.input._name = model1.input.name + '_1'
for layer in model1.layers:
layer._name = layer.name + str("_1")
model1._name = 'pretrained_model1'
print('=====================================')
model2 = load_model('./new/CNN_Level1.1_2Dense_1024ML_Prep_ALL')
model2.input._name = model2.input.name + '_2'
for layer in model2.layers:
layer._name = layer.name + str("_2")
model2._name = 'pretrained_model2'
out1 = model1.output
out2 = model2.output
m_model = concatenate([out1, out2])
relu_dense = Dense(19, activation='relu')(m_model)
output = Dense(19, activation='softmax')(relu_dense)
merged_model = Model(inputs=[model1.input,model2.input], outputs=output)
但我仍然收到此错误:
<块引用>文件“Ali_text_classification-Copy1.py”,第196行,train_network 合并模型=模型(输入=[模型1.输入,模型2.输入],输出=输出) 文件“/root/.local/lib/python3.6/site-packages/tensorflow/python/training/tracking/base.py”,第 517 行,在 _method_wrapper 结果 = 方法(自我,*args,**kwargs) init 中的文件“/root/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/functional.py”,第 120 行 self._init_graph_network(输入,输出) 文件“/root/.local/lib/python3.6/site-packages/tensorflow/python/training/tracking/base.py”,第 517 行,在 _method_wrapper 结果 = 方法(自我,*args,**kwargs) 文件“/root/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/functional.py”,第 204 行,在 _init_graph_network self.inputs, self.outputs) _map_graph_network 中的文件“/root/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/functional.py”,第 1001 行 str(all_names.count(name)) + ' 模型中的次数。 ' ValueError:名称“input_1”在模型中使用了 2 次。所有图层名称都应该是唯一的。
我该如何解决这个问题?
答案 0 :(得分:0)
截至 2021 年 4 月,根据此处的一个解释,我能够将 FPN 模型修改为 Siamese FPN。链接如下:
https://github.com/asifpatankar/Siamese_FPN
消失了2次错误。也许它可以帮助!