2017-08-06 138 views
0

說,這是訓練和測試數據:維在keras LSTM模型

X_matrix.shape = (5, 115318, 4) ; Y_matrix.shape = (5, 115318, 51) 

,我用的LSTM模式是:

model = Sequential() 
model.add(LSTM(128, dropout=0.2, recurrent_dropout=0.2)) 
model.add(Dense(51, activation='softmax')) 
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) 
然而

,當我運行的模式,它事實證明:

Dense layer expected 2 dimensions but gotten 3 

據我所知,我沒有定義輸出層(緻密層)的input_shape,所以爲什麼出現這種情況?

回答

1

問題是你的Y矩陣是三維的,當它應該是二維的。基於網絡設置,您的Y矩陣應該是形狀(5,52)。雖然,您也可以將return_sequesnce=True添加到lstm圖層,網絡將按原樣運行。另外,如果您有52種可能的類別,請注意您的損失函數應該是categorical_crossentropy