【发布时间】:2021-03-08 04:47:49
【问题描述】:
我正在尝试在 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.输入],输出=输出) _method_wrapper 中的文件“/root/.local/lib/python3.6/site-packages/tensorflow/python/training/tracking/base.py”,第 517 行 结果 = 方法(自我,*args,**kwargs) init 中的文件“/root/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/functional.py”,第 120 行 self._init_graph_network(输入,输出) _method_wrapper 中的文件“/root/.local/lib/python3.6/site-packages/tensorflow/python/training/tracking/base.py”,第 517 行 结果 = 方法(自我,*args,**kwargs) _init_graph_network 中的文件“/root/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/functional.py”,第 204 行 自我输入,自我输出) _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 次。所有图层名称都应该是唯一的。
我该如何解决这个问题?
【问题讨论】:
-
就像更改模型的输入名称后的健全性检查一样,只需将它们单独保存并检查名称更改是否得到反映。
-
我检查了,但名称更改没有反映出来。我现在不知道该怎么办
标签: python tensorflow keras neural-network concatenation