1

我正在使用 keras Tuner 来优化超参数:隐藏层、神经元、激活函数和学习率。我有 31 个输入、32 个输出和 N 个数据样本的时间序列回归问题。

我原来的 X_train 形状是 (N,31) 而 Y_train 形状是 (N,32)。我将其转换为适用于 keras 形状,并按照以下方式重塑 X_train 和 Y_train:X_train.shape: (N,31,1) Y_train.shape: (N,32)。

代码

在上面的代码中,X_train.shape(1) 是 31,Y_train.shape(1) 是 32。当我使用超参数调整时,它说 ValueError: Input 0 of layer lstm_1 is incompatible with the layer: expected ndim=3, found ndim=2。收到的完整形状:(无,20)。

存在以下错误: 在此处输入图像描述

我错过了什么,它的问题是什么。

4

1 回答 1

0

LSTM 层需要一个形状为 [batch, timesteps, feature] 的 3D 张量输入。由于您使用的层数是与 LSTM 层一起的调整参数,当 LSTM 层数为 2 及以上时,第一个 LSTM 层之后的 LSTM 层也将期望 3D 张量作为输入,这意味着您需要将 'return_sequences=True' 参数添加到设置中,以便前一个 LSTM 层的输出张量具有 ndim=3(即批量大小、时间步长、隐藏状态),它被馈送到下一个 LSTM 层。

于 2021-04-25T05:10:19.930 回答