web-dev-qa-db-ja.com

Kerasエラー「プレースホルダテンソル 'bidirectional_1 / keras_learning_phase'の値にdtype boolを指定する必要があります」

以下のコードスニペットで次のエラーが表示されます。

プレースホルダーテンソル「bidirectional_1/keras_learning_phase」の値にdtype boolを指定する必要があります

ドロップアウトレイヤーmodel.add(Dropout(dropout))を追加すると、機能します。誰もが理由を知っていますか?バックエンドは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
18
wolfshow

Kをインポートし、モデルの前に学習フェーズを設定してみてください。

from keras import backend as K

K.set_learning_phase(1) #set learning phase

この問題 から

29
vega