python - 连接两个预训练模型错误:名称“input_1”在模型中被使用了 2 次
问题描述
我正在尝试在 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 merge_model = Model(inputs=[model1.input,model2.input], outputs=output) 文件“/root/.local/lib/python3.6/site- packages/tensorflow/python/training/tracking/base.py”,第 517 行,在 _method_wrapper 结果 = 方法(self,*args,**kwargs)文件“/root/.local/lib/python3.6/site-packages /tensorflow/python/keras/engine/functional.py”,第 120 行,在init中 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 ) 文件“/root/.local/lib/python3.6/site-packages/tensorflow/python/keras/engine/functional.py”,第 1001 行,在 _map_graph_network str(all_names.count(name)) + ' 次该模型。' ValueError:名称“input_1”在模型中使用了 2 次。所有图层名称都应该是唯一的。
我怎样才能解决这个问题?
解决方案
截至 2021 年 4 月,根据此处的一种解释,我能够将 FPN 模型修改为 Siamese FPN。链接如下:
https://github.com/asifpatankar/Siamese_FPN
消失2次错误。也许它可以帮助!
推荐阅读
- reactjs - 如何使用反应向列表中的子项添加键?
- firebase - Firebase auth:export 陷入无限循环
- java - Mongodb java驱动程序在使用聚合读取时自动将日期转换为本地机器时区
- javascript - Webpack 可以处理 Django 静态文件(图像)吗?
- c++ - 在精神 qi 中将 qi::lexeme 添加到规则时编译失败
- javascript - 如何创建将线条均匀填充到最后的元素,例如下面的 img?
- c++ - 如何修复我的虚幻项目中的“符号查找错误”?
- jenkins - 是否可以在 Jenkins 流水线中并行运行多个阶段及其各自的步骤?
- c# - IMU 传感器 LPMS-B2:无法通过蓝牙连接到 Unity 应用程序?
- javascript - 使用 JS 在循环中运行函数