gpt4 book ai didi

python - LSTM-Keras 是否考虑了时间序列之间的依赖关系?

转载 作者:太空宇宙 更新时间:2023-11-03 14:50:07 25 4
gpt4 key购买 nike

我有:

  • 多个时间序列作为输入
  • 预测输出中的时间序列点

如何确保模型通过使用输入中所有时间序列之间的依赖关系来预测数据?

编辑 1
我当前的型号:

model = Sequential()
model.add(keras.layers.LSTM(hidden_nodes, input_dim=num_features, input_length=window, consume_less="mem"))
model.add(keras.layers.Dense(num_features, activation='sigmoid'))
optimizer = keras.optimizers.SGD(lr=learning_rate, decay=1e-6, momentum=0.9, nesterov=True)

最佳答案

默认情况下,keras 中的 LSTM 层(以及任何其他类型的循环层)不是有状态的,因此每次将新输入输入网络时状态都会重置。您的代码使用此默认版本。如果需要,可以通过在 LSTM 层内指定 stateful=True 使其有状态,这样状态就不会被重置。可以阅读更多相关语法here ,和 this blog post提供有关有状态模式的更多信息。

下面是相应语法的示例,取自 here :

trainX = numpy.reshape(trainX, (trainX.shape[0], trainX.shape[1], 1))
testX = numpy.reshape(testX, (testX.shape[0], testX.shape[1], 1))
# create and fit the LSTM network
batch_size = 1
model = Sequential()
model.add(LSTM(4, batch_input_shape=(batch_size, look_back, 1), stateful=True))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
for i in range(100):
model.fit(trainX, trainY, epochs=1, batch_size=batch_size, verbose=2, shuffle=False)
model.reset_states()
# make predictions
trainPredict = model.predict(trainX, batch_size=batch_size)
model.reset_states()
testPredict = model.predict(testX, batch_size=batch_size)

关于python - LSTM-Keras 是否考虑了时间序列之间的依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45932578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com