Keras函数式模型构建报错:输入张量无法关联输出张量
解决Keras函数式模型ValueError:输出张量无法关联指定输入张量的问题
错误核心原因
你在构建modelB时,用到了名为Sec_data的KerasTensor(张量规格:TensorSpec(shape=(None, 128, 128, 3), dtype=tf.float32, name='Sec_data')),但这个张量没有被纳入模型的输入列表,导致Keras的输入输出关联检查逻辑无法追踪该张量到输出的计算链路,从而抛出ValueError。
具体修复步骤
- 找到代码中创建
Sec_data输入张量的代码,确认它是通过tf.keras.Input()定义的,比如:Sec_data = tf.keras.Input(shape=(128, 128, 3), name='Sec_data') - 定位到GESU_net.py第176行创建
modelB的代码,修改inputs参数,将Sec_data加入输入列表。例如:
原来的代码可能是:
改成:modelB = Model(inputs=[main_input], outputs=model_output)
注:如果有其他输入张量,需一并保留,仅补充modelB = Model(inputs=[main_input, Sec_data], outputs=model_output)Sec_data即可 - 验证计算链路:确保
Sec_data张量确实参与了model_output的计算过程,没有出现张量被孤立引用的情况。
错误回溯对应点
你的错误触发路径是:train.ipynb Cell3调用GESU_net.train() → GESU_net.py第195行调用get_gesunet() → 第176行创建modelB时触发错误,所以重点修复第176行的模型输入定义即可。
内容的提问来源于stack exchange,提问作者user6403038
相关产品推荐
相关产品推荐

