使用Keras Functional API搭建多输入模型出现Graph disconnected报错怎么办
报错原因分析
- 核心问题是变量名拼写不一致,属于笔误导致的计算图断裂:
你在完成张量拼接时,把拼接后的结果赋值给了变量cancat,但后续定义输出层时,调用的是未定义的变量concat,二者拼写不一致。这就导致输出层的输入没有和之前的输入层、隐藏层形成完整的计算链路,Keras在构建模型时无法追踪到完整的张量流动路径,因此抛出计算图断开的错误。
修复方案
把两处的变量名统一即可,修改后正确代码如下:
import pandas as pd import tensorflow as tf from tensorflow import keras example=3 # 多输入定义 input_A = keras.layers.Input(shape=[example]) input_B = keras.layers.Input(shape=[example]) hidden1 = keras.layers.Dense(30,activation="relu")(input_B) hidden2 = keras.layers.Dense(30,activation="relu")(hidden1) # 变量名统一为concat concat = keras.layers.concatenate([input_A,hidden2]) output = keras.layers.Dense(1)(concat) model = keras.models.Model(inputs=[input_A, input_B], outputs=[output])
内容的提问来源于stack exchange,提问作者Arvind Devarkonda
相关产品推荐
相关产品推荐

