iT邦幫忙

1

LSTM多對多預測 資料結構問題

各位大大晚安

目前正在學習LSTM多對多預測,手邊有一組"48期交易金額"的資料,1000名顧客,共48000筆資料
想要把48期切分成36期訓練,12期測試
並且利用1~35期當作訓練X,Y為2~36期的金額

import 進 模型的Shape:
trainX:(1000,1,35)
trainY:(1000,35)

訓練模型程式碼如下:

model = Sequential()
model.add(LSTM(4, input_shape=(35,1)))
model.add(Dense(35))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=2)

error 代碼如下:
ValueError: Error when checking input: expected lstm_9_input to have shape (35, 1) but got array with shape (1, 35)

不知道是否是多對多時輸入資料的結構錯誤,或者是哪裡沒有搞懂?
麻煩各位大大解答,感謝!

1 個回答

1
always9650
iT邦見習生 0 級 ‧ 2018-10-26 09:55:43

把input_shape=(35,1) 改成input_shape = (1,35),或者 np.squeeze(trainX,axis = 1),就可以解決error了
但不確定跑出來的結果是不是你想要到,
1.因為不知道為什麼要input_shape=(35,1)這樣寫
2.不清楚資料結構trainX : (1000,1,35) 為什麼不能寫成trainX:(1000,35)

錯誤的地方是shape不一樣
[[0 1 2]] , shape = (1, 3)
[[0]
[1]
[2]] , shape = (3, 1)

我要發表回答

立即登入回答