Соединение входа и выхода в кератах в этой простой проблеме XOR - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь воссоздать эту архитектуру в Keras для решения проблемы XOR, где есть веса, соединяющие вход (двумерный массив) и выход (скаляр). Я знаю, что проблема XOR может быть решена с помощью полностью подключенной архитектуры 2,2,1, но я не знаю, как реализовать эту архитектуру в Keras.

Я прочитал документы и исследовал SO, но я могу Кажется, не найти решение. Следующий код показывает, что я сделал до сих пор. Моя основная проблема заключается в том, как соединить скрытый слой и выходной слой.

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(...)

1 Ответ

0 голосов
/ 21 апреля 2020

Привет, Эвелин, добро пожаловать в 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])])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...