【问题标题】:Hyperparameter Tuning with Keras Tuner RandomSearch Error使用 Keras Tuner RandomSearch 错误进行超参数调优
【发布时间】:2021-07-18 18:58:46
【问题描述】:

我正在使用 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、发现ndim=2。收到的完整形状:(无,20)。

存在以下错误:

我缺少什么以及它的问题是什么。

【问题讨论】:

    标签: python tensorflow keras deep-learning keras-tuner


    【解决方案1】:

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

    【讨论】:

    • 我添加了 return_sequences=True。仍然存在问题: ValueError: 尺寸必须相等,但对于具有输入形状的 '{{node mean_squared_error/SquaredDifference}} = SquaredDifference[T=DT_FLOAT](sequential/dense/BiasAdd, IteratorGetNext:1)' 为 31 和 192 :[192,31,32],[192,32]。 tuner.results_su
    猜你喜欢
    • 2023-01-31
    • 1970-01-01
    • 2022-09-28
    • 2020-09-24
    • 1970-01-01
    • 2021-06-23
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多