J'obtiens l'erreur suivante pour l'extrait de code ci-dessous:
Vous devez fournir une valeur pour le tenseur d'espace réservé 'bidirectional_1/keras_learning_phase' avec dtype bool
Si j'ajoute la couche de suppression model.add(Dropout(dropout))
, cela fonctionne. Quelqu'un sait pourquoi? Le back-end est Tensorflow, Keras 2.0.1
def prep_model1(embedding_layer1, embedding_layer2, dropout=0.5):
model0 = Sequential()
model0.add(embedding_layer1)
model0.add(Bidirectional(LSTM(128, return_sequences=False, dropout=dropout)))
model1 = Sequential()
model1.add(embedding_layer2)
model1.add(Bidirectional(LSTM(128, return_sequences=False, dropout=dropout)))
model = Sequential()
model.add(Merge([model0, model1], mode='concat', concat_axis=1))
#model.add(Dropout(dropout))
model.add(Dense(1, activation='sigmoid'))
return model
Essayez d'importer K et de définir la phase d'apprentissage avant votre modèle.
from keras import backend as K
K.set_learning_phase(1) #set learning phase
De ce problème