【发布时间】:2023-03-22 23:57:02
【问题描述】:
我在 keras 上使用 LSTM,并在之前使用了重塑层,希望我不必为 LSTM 层指定形状。
输入为 84600 x 6
2 个月内 84600 秒。 6 个指标/[标签] 我在 2 个月内进行测量
目前为止
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Reshape((86400,1,6), input_shape=(84600, 6)))
model.add(tf.keras.layers.LSTM(128, activation='relu', input_shape=
(x_train.shape), return_sequences=True))
model.add(tf.keras.layers.Dense(10, activation='softmax'))
引发错误:
ValueError: Input 0 of layer lstm is incompatible with the layer: expected ndim=3, found ndim=4. Full shape received: [None, 86400, 1, 6]
这是可以理解的。批量大小加上 3 层等于 4。 然而,当我重塑
model.add(tf.keras.layers.Reshape((86400,1,6), input_shape=(84600, 6)))
vvvvvvv
model.add(tf.keras.layers.Reshape((86400,6), input_shape=(84600, 6)))
它抛出
ValueError: Error when checking input: expected reshape_input to have 3 dimensions, but got array with shape (86400, 6)
它似乎忽略了作为数组元素的批量大小。并将其视为 2 个索引。它从 4 维跳跃到 2 维。
问题是 LSTM 需要 3 个维度作为输入,我似乎无法理解。理想情况下,我想要一个 86400 x 1 x 6 阵列/张量。所以它变成了 84600 个 1x6 数据的例子。
非常感谢!
【问题讨论】:
标签: python tensorflow keras lstm