<p>你是在正确的轨道上,但混淆了单位数量与时间步长。<code>units</code>是一个超参数,它控制LSTM的输出维度。它是LSTM输出向量的维数,所以如果输入是<code>(1,6)</code>,并且你有32个单位,你将得到<code>(32,)</code>,因为在LSTM中,它将遍历单个时间步并产生一个大小为32的向量。在</p>
<P>时间步长指的是你可以考虑的历史的大小。所以它和单位根本不一样。Keras没有自己处理数据,而是提供了一个方便的<a href="https://keras.io/preprocessing/sequence/" rel="nofollow noreferrer">TimeseriesGenerator</a>,它可以像你的那样获取二维数据,并使用一个时间步长大小的滑动窗口来生成timeseries数据。根据文件:</p>
<pre><code>from keras.preprocessing.sequence import TimeseriesGenerator
import numpy as np
data = np.array([[i] for i in range(50)])
targets = np.array([[i] for i in range(50)])
data_gen = TimeseriesGenerator(data, targets,
length=10, sampling_rate=2,
batch_size=2)
assert len(data_gen) == 20
batch_0 = data_gen[0]
x, y = batch_0
assert np.array_equal(x,
np.array([[[0], [2], [4], [6], [8]],
[[1], [3], [5], [7], [9]]]))
assert np.array_equal(y,
np.array([[10], [11]]))
</code></pre>
<p>你可以使用<code>model.fit_generator(data_gen,...)</code>中的目录,让你可以选择尝试不同的采样率、时间步长等。你可能应该研究一下这些参数以及它们是如何影响论文结果的。在</p>