连接两个预训练模型错误:名称“input_1”在模型中使用了 2 次

时间:2021-03-08 04:47:49

标签: python tensorflow keras neural-network concatenation

我正在尝试在 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 次。所有图层名称都应该是唯一的。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

截至 2021 年 4 月,根据此处的一个解释,我能够将 FPN 模型修改为 Siamese FPN。链接如下:

https://github.com/asifpatankar/Siamese_FPN

消失了2次错误。也许它可以帮助!

相关问题