在这个简单的 XOR 问题中连接 keras 中的输入和输出

Connecting input and output in keras in this simple XOR problem

我正在尝试在 Keras 中重新创建 this architecture 以解决 XOR 问题,其中存在连接输入(二维数组)和输出(标量)的权重。我知道异或问题可以使用全连接的2,2,1架构来解决,但是我不知道如何在Keras中实现这个架构。

我阅读了文档并进行了研究,但似乎找不到解决方案。下面的代码显示了我到目前为止所做的。我的主要问题是如何连接隐藏层和输出层。

input1 = keras.layers.Input(shape=(2,)) # input
hidden_layer = keras.layers.Dense(1, activation='tanh')(input1) # linking the input with the hidden layer
output1 = keras.layers.Dense(1, activation='tanh')(input1) # linking the input with the output layer
# The code for connecting hidden and output layer should probably go here #
model = keras.models.Model(inputs=input1, outputs=outpu1) 
model.compile(...)

嗨,伊芙琳,欢迎来到 stacckoverflow。

我认为用两个输入来做更有意义。

您可以按如下方式实现:

import tensorflow as tf
from tensorflow import keras


inp1 = keras.layers.Input(shape=(1,))
inp2 = keras.layers.Input(shape=(1,))

x = keras.layers.Concatenate()([inp1, inp2])
x = keras.layers.Dense(1, activation='tanh')(x)

x = keras.layers.Concatenate()([inp1, inp2, x])
output = keras.layers.Dense(1, activation='tanh')(x)

model = keras.models.Model(inputs=[inp1, inp2], outputs=output) 
model.summary()
model([tf.ones([8, 1]), tf.zeros([8, 1])])