Vous obtenez le message d'erreur, car result
défini comme Sequential()
est juste un conteneur pour le modèle et vous n'avez pas défini une entrée.
Compte tenu de ce que vous essayez de construire ensemble result
pour prendre la troisième entrée x3
.
first = Sequential()
first.add(Dense(1, input_shape=(2,), activation='sigmoid'))
second = Sequential()
second.add(Dense(1, input_shape=(1,), activation='sigmoid'))
third = Sequential()
# of course you must provide the input to result with will be your x3
third.add(Dense(1, input_shape=(1,), activation='sigmoid'))
# lets say you add a few more layers to first and second.
# concatenate them
merged = Concatenate([first, second])
# then concatenate the two outputs
result = Concatenate([merged, third])
ada_grad = Adagrad(lr=0.1, epsilon=1e-08, decay=0.0)
result.compile(optimizer=ada_grad, loss='binary_crossentropy',
metrics=['accuracy'])
Cependant, ma manière préférée de construction d'un modèle qui dispose de ce type de structure d'entrée serait l'utilisation de la fonctionnelle de l'api.
Voici une mise en œuvre de vos besoins pour vous aider à démarrer:
from keras.models import Model
from keras.layers import Concatenate, Dense, LSTM, Input, concatenate
from keras.optimizers import Adagrad
first_input = Input(shape=(2, ))
first_dense = Dense(1, )(first_input)
second_input = Input(shape=(2, ))
second_dense = Dense(1, )(second_input)
merge_one = concatenate([first_dense, second_dense])
third_input = Input(shape=(1, ))
merge_two = concatenate([merge_one, third_input])
model = Model(inputs=[first_input, second_input, third_input], outputs=merge_two)
ada_grad = Adagrad(lr=0.1, epsilon=1e-08, decay=0.0)
model.compile(optimizer=ada_grad, loss='binary_crossentropy',
metrics=['accuracy'])
Pour répondre à la question suivante dans les commentaires:
1) Comment sont le résultat et fusionné connecté? En supposant que vous dire comment ils sont concaténées.
Concaténation fonctionne comme ceci:
a b c
a b c g h i a b c g h i
d e f j k l d e f j k l
j'.e les lignes sont juste de rejoindre.
2) Maintenant, x1
est entrée pour la première, x2
est entrée en deuxième et x3
d'entrée en troisième.