我有 1025643 个条目和 72 个特征/属性的测试数据。我已经用形状为 (245, 30, 72) 的输入数据 trainX 和形状为 (245, ) 的 trainY 训练了一个 lstm。另请注意,我已指定回溯为 30 步,因此 trainX 的形状为 (245, 30, 72)。
现在在训练模型后,如果我这样做
model.output_shape
输出是:
(无,1)
我的理解是它将为测试集提供一步预测。但我希望它是 30 行预测,每个未来步骤一个,测试集中的每一行(例如输出在我的情况下应该具有 (1025643 , 30, 1) 的形状)。我需要对数据形状进行哪些更改?我正在使用带有 tensorflow 后端和 python 3.6 的 keras lstm。
我的模型的代码是:
model = Sequential()
model.add(LSTM(100, return_sequences=True, input_shape = (trainX.shape[1], trainX.shape[2])))
model.add(LSTM(100, return_sequences = False))
model.add(Dense(1, activation='linear'))
model.compile(loss='mse', optimizer='adam')
model.fit(trainX, trainY, epochs=50, shuffle=False, verbose=1)
在return_sequences=False
过去的LSTM层参数使LSTM所有30个年代步骤后,只返回输出。如果您希望return_sequences=True
在最后一个 LSTM 层上使用 30 个输出(每个时间步之后一个),这将导致输出形状为(None, 30, 1)
.
有关 Keras 中 LSTM 的更详细说明,请参见此处。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句