【发布时间】:2018-09-10 21:34:44
【问题描述】:
我正在执行多变量时间序列分析。我打算用不同的批量大小和超参数多次运行这个网络。因此,到目前为止,我一直保持一般性并假设
B := Number of batches
T := Number of timesteps per batch
N := Number of features per timestep
我的最终目标是在一批上调用 model.predict(当然,这还没有用于训练)。因此它看起来像这样
prediction = model.predict(unknown)
unknown.shape = (T, N)
prediction.shape = (N,)
我一直在尝试大量的网络。
我无法让它工作
model.add(LSTM(N, input_shape=(T, N), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(N, input_shape=(T, N), return_sequences=False))
model.add(Dense(N))
但是,我可以让它工作
model.add(LSTM(N, input_shape=(T, N), return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(N, input_shape=(T, N), return_sequences=True)) # True here
model.add(Dense(N))
如果输出包含最后一个时间步,即我正在寻找的 f(t+1),那么 return_sequences=True 有什么问题?我想这并不能解决根本问题,即我不完全了解如何构建这些网络。就像我说的,在开始进行实验之前,我希望尽可能保持一般性并深入了解网络。
我将使用非常不同的 B、T 和 N 值进行实验,看看哪个效果最好。
我尝试阅读文档等,但我非常卡住并且感到沮丧,所以我想我会求助于社区。p>
【问题讨论】:
-
第一个网络(return_sequences 设置为 False)是否产生错误?还是根本没有产生预期的结果?
-
错误预期 lstm_2 有两个维度,但它收到了形状为 (1, T, N) 的数组