2017-06-23 224 views
0

我試圖將我自己的數據結構傳遞給Keras中的LSTM層,但模型的訓練在早期失敗。Keras輸入數據格式

我的意圖是創建一個固定長度的序列並接收相同大小的輸出序列。目前,序列如下:

[0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3] 

這是一個列表,然後我使用np.array()變成一個np數組。標籤序列的構建方式相似。總共有8000個這樣的序列,全部長度爲12.

在我的Keras模型中,LSTM是第一層。這需要我將數據的輸入形狀傳遞給模型。我嘗試過填充幾種形狀,但無濟於事。爲了完整起見,這些都是我的模型的前兩行:

model = Sequential() 
model.add(LSTM(100, input_shape=(8000, 12))) 
model.add(Dense(nb_classes)) 
model.add(Activation('softmax')) 

在訓練過程中我遇到了一些麻煩,我碰到this後傳來。這看起來與我正在嘗試做的非常相似。我已經嘗試過提供的解決方案,但不知怎的,配件仍然崩潰。我收到以下錯誤:

ValueError: Error when checking input: expected lstm_1_input to have 3 dimensions, but got array with shape (8000, 12) 

任何想法?

更新: 對於Parthosarathi Mukherjee我補充了網絡的其餘部分。

回答

0
model.add(LSTM(100, input_shape(8000, 12))) 

改用

model.add(LSTM(100, input_shape(12,1))) 

確保前適合輸入數據具有形狀8000×12×1,而不是8000×12

+0

感謝您的快速回復!如果我這樣做,我仍然得到一個錯誤: ValueError:檢查目標時出錯:期望activation_1有形狀(無,1)但有形狀的數組(96000,2) – Cassie

+0

請發佈一些代碼, 。我不確定'activation_1'從哪裏來。 –

+0

我已經添加了模型的其餘部分。 – Cassie