各位大大晚安
目前正在學習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)
不知道是否是多對多時輸入資料的結構錯誤,或者是哪裡沒有搞懂?
麻煩各位大大解答,感謝!
把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)