2017-03-23 31 views
7

tôi nhận được lỗi sau cho đoạn mã dưới đây:Keras lỗi "Bạn phải ăn một giá trị cho placeholder tensor 'bidirectional_1/keras_learning_phase' với dtype bool"

Bạn phải ăn một giá trị cho placeholder tensor ' bidirectional_1/keras_learning_phase 'với dtype bool

Nếu tôi thêm lớp bỏ học model.add(Dropout(dropout)), nó hoạt động. Có ai biết tại sao không? Back-end là 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 

Trả lời

16

Hãy thử nhập K và đặt giai đoạn học tập trước mô hình của bạn.

from keras import backend as K 

K.set_learning_phase(1) #set learning phase 

Từ this issue

+0

u r là một thiên tài .... –

+0

nó làm việc, cảm ơn bạn rất nhiều –

+0

Chú ý: sử dụng nó trước khi xây dựng mô hình. Cũng cho BatchNorm. – ikamen

Các vấn đề liên quan