tf.keras.Concatenate Graph 连接两个输入层时断开连接
Posted
技术标签:
【中文标题】tf.keras.Concatenate Graph 连接两个输入层时断开连接【英文标题】:tf.keras.Concatenate Graph Disconnected when concatenating two input layers 【发布时间】:2021-12-14 22:02:46 【问题描述】:嘿,我有一个似乎很常见的问题,但我确信我正在做的事情应该可行,因为它是如此简单。
这与 Keras Concatenate 层有关:
Graph disconnected: cannot obtain value for tensor KerasTensor(type_spec=TensorSpec(shape=(None, 128, 256, 192, 1), dtype=tf.float32, name='input_1'), name='input_1', description="created by layer 'input_1'") at layer "tf.concat". The following previous layers were accessed without issue: []
我实际上是在尝试像这样连接 2 个输入:
in_layer1 = Input((sizes1[1], sizes1[2], sizes1[3], 1)) # (slices, x, y, channel=1)
in_layer2 = Input((sizes2[1], sizes2[2], sizes2[3], 1)) # (slices, x, y, channel=1)
in_layer = Concatenate(axis=1)([in_layer1, in_layer2][:]) # combine the two inputs
实例化模型时出现问题:
Model(inputs=[in_layer], outputs=[out_layer])
在 tf2.2 之前似乎是个问题,我使用的是 2.4,所以不确定为什么会这样: https://github.com/tensorflow/tensorflow/issues/32023
任何帮助或资源将不胜感激。我检查了文档,我不认为我做错了,但显然有问题。
【问题讨论】:
您需要将原始输入层 (in_layer1/2) 传递给模型,而不是您的连接层(不是输入层)。 谢谢!这是正确的。 【参考方案1】:正如@Dr.Snoopy 提到的,in_layer 实际上并不是一个输入层。相反,它应该是 Model(inputs=[in_layer1, in_layer2], outputs=[out_layer])
【讨论】:
以上是关于tf.keras.Concatenate Graph 连接两个输入层时断开连接的主要内容,如果未能解决你的问题,请参考以下文章