在 keras 中为 lstm 预处理数据 - Numpy,选择每第 n 行都会让我失去一个维度

Preprocess data for lstm in keras - Numpy, selecting every nth row loses me a dimension

我有一个数组 y_test,如下所示:

print(y_test)

[[ 21.156  23.155]
 [ 20.64   22.976]
 [ 20.011  22.976]
 ...
 [-16.527  18.002]
 [-16.368  17.548]
 [-16.164  15.959]]

我想select每隔20行,从9开始,意思是位置9、29、49等

我通过执行以下操作获得了正确的值:

y_small = np.copy(y_test[9::20])

print(y_small)

[[-19.921  12.981]
 [ -3.975  19.921]
 [  8.916  18.529]
 ...
 [ 18.684   3.496]
 [ 21.719  18.855]
 [-19.637  20.749]]

但是,如果我将我的新 y_small 提供给我一直使用的 LSTM 模型,我会收到以下错误:

Error when checking input: expected lstm_input to have 3 dimensions, but got array with shape (1081, 2)

这让我很困惑,因为初始数组 y_test 被系统很好地获取了。

感谢任何帮助!

编辑:我的问题是 y_test 的预处理,但是 做了我最初要求的。我会把它留待解决,以防有人无意中发现它!

根据报错信息,LSTM需要3维输入。通过添加维度重塑 y_small NumPy 数组。

您可以像这样重塑以获得所需的维数:

y_small = np.reshape(y_small, (y_small.shape[0], 1, y_small.shape[1]))