Keras d'erreur “Vous devez fournir une valeur pour l'espace réservé tenseur 'bidirectional_1/keras_learning_phase' avec dtype bool”
J'obtiens l'erreur suivante pour l'extrait de code ci-dessous:
Vous devez fournir une valeur pour l'espace réservé tenseur
'bidirectional_1/keras_learning_phase' avec dtype bool
Si j'ajoute le décrochage de la couche de model.add(Dropout(dropout))
, il 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
OriginalL'auteur wolfshow | 2017-03-23
Vous devez vous connecter pour publier un commentaire.
Essayez d'importer K et définir phase d'apprentissage avant de votre modèle.
De ce problème
Il est dit ici: La "phase d'apprentissage" est un indicateur est un indicateur qui indique la formation/de l'inférence. Il est mis à 1 lors de l'utilisation, par exemple
fit
et à 0 lors de l'utilisation, par exemplepredict
.K.set_learning_phase(False)
définit la "phase d'apprentissage" pour être toujours à 0, c'est à direfit
auront le modèle de comportement dans le mode de déduction (par exemple, pas d'abandon et d'BatchNorm comportement d'ensemble à l'inférence).OriginalL'auteur vega