如何解决ValueError:输入数组的样本数应与多元时间序列数据的目标数组相同
我想创建一个具有多个输出的多元 LSTM 模型,但我面临着 X 和 y 数据输入形状的问题。找不到任何解决方案。
我担心的一个问题是,如果我们使用多元时间序列,我们是否必须在输出端使用 3 个神经元?
实际数据:df.head()
Tem. Hum Presure
2019-01-01 16.808511 66.085106 1018.042553
2019-01-02 19.437500 63.270833 1015.020833
2019-01-03 20.416667 68.312500 1014.104167
2019-01-04 27.500000 77.395833 1008.458333
2019-01-05 31.854167 73.708333 1004.708333
进行数据预处理后
X =
array([[[0.,0.22182641,0.9932125 ]],[[0.17473411,0.129819,0.86032281]],[[0.23981381,0.29464689,0.82000949]],...,[[0.31314616,0.53057328,0.86911437]],[[0.30827762,0.55054247,0.87090296]],[[0.30306702,0.55759395,0.87138509]]])
y =
array([[0.29757451,0.56409832,0.87433447]])
X.shape = (349,1,3)
y.shape = (1,3)
model = Sequential()
model.add(LSTM(200,activation='relu',return_sequences=True,input_shape=(X.shape[1],X.shape[2])))
model.add(LSTM(50,return_sequences=False))
model.add((Dense(3)))
model.compile(optimizer='adam',loss='mse')
early_stop = EarlyStopping(patience=5,restore_best_weights=True)
model.summary()
Model: "sequential_18"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm_28 (LSTM) (None,200) 163200
_________________________________________________________________
lstm_29 (LSTM) (None,50) 50200
_________________________________________________________________
dense_16 (Dense) (None,3) 153
=================================================================
Total params: 213,553
Trainable params: 213,553
Non-trainable params: 0
_________________________________________________________________
"
history=model.fit(X,y,epochs=50,verbose=2,shuffle=False,callbacks=[early_stop],use_multiprocessing=True,)
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。