我正在培训单层LSTM,其编码如下:
model = keras.Sequential()
model.add(keras.layers.LSTM(units=64,
input_shape=(X_train.shape[1], X_train.shape[2])))
model.add(keras.layers.Dense(units=1, activation='sigmoid'))
model.compile(
loss='binary_crossentropy',
optimizer = keras.optimizers.Adam(lr=0.0001),
metrics=['acc']
)
我的LSTM的输入是一个小时时间序列。我想根据每小时的序列来预测每天的值。
目前我所做的是生成每小时的预测,然后将第一个预测作为每天的预测。然而,我想知道是否有一种方法可以在日常水平上产生相同的预测。
谢谢您!你知道吗
一个选项是,您还可以给出一个名为
batch_input_shape
的参数,而不是input_shape
。不同的是,现在您必须给定一个固定的批处理大小,并且您的输入数组形状将类似于(24, X_train.shape[1], X_train.shape[2])
。你知道吗您还可以选择设置另一个参数
return_sequences
。此参数说明是否在每个时间步返回输出,而不是在最后一个时间步返回输出。当我们将return_sequences
设置为True
时,输出形状将变成一个3D数组,而不是2D数组。你知道吗我认为你有两个选择。你知道吗
使用基于每日的训练数据集训练模型。过滤出当天最合适的数据点时,可以使用重复次数最多的数据点(模式)或平均值。
以每小时的输出为基础,预测未来24小时的24个输出,并得到这24个输出的平均值或模式作为当天的预测。
最好的办法可能是第二种。这将是非常准确的。你知道吗
相关问题 更多 >
编程相关推荐