python - keras 中 lstm 的预处理数据-Numpy,选择每第 n 行会丢失一个维度
问题描述
我有一个数组 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]]
我想每 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 的预处理,但Niv 的回答符合我最初的要求。万一有人偶然发现它,我会把这个问题解决!
解决方案
根据错误信息,LSTM 需要 3 个维度的输入。通过添加维度来重塑 y_small NumPy 数组。
您可以像这样重塑以实现所需的尺寸数量:
y_small = np.reshape(y_small, (y_small.shape[0], 1, y_small.shape[1]))
推荐阅读
- nearprotocol - 主网的合约助手 url:获取特定帐户 ID 的委托信息
- e-commerce - 从 NFC 终端创建归档 55 以进行支付
- ruby-on-rails - 资产变化不反映
- r - 累积和元素
- sharepoint - 无法在 Power BI 报表生成器上显示来自 Sharepoint 文档库的图像
- reactjs - React 表单中的必填字段不需要文本输入
- arrays - 显示错误的 C 代码:*** 检测到堆栈粉碎 ***:
终止中止(核心转储) - react-native - 我需要让我的两个项目在同一行工作
- python - 使用 Pytorch 并行数据加载器 (SIMD),但在多个 CPU 上
- ruby-on-rails - Rails after_commit 回调无法将计算保存到数据库中的持续时间列