【问题标题】:LSTM layer value error: dimension must be equalLSTM层值错误:维度必须相等
【发布时间】:2022-01-15 15:22:09
【问题描述】:

我正在尝试创建一个非常简单的 2 层 LSTM 模型来进行顺序预测。输入数据形状是二维的。我想填充我的输入,但我不知道该怎么做,所以我手动填充了我的输入数据。这就是为什么 pad_inputs 被注释掉的原因。但是,当我运行此模型时,我收到一条错误消息:

ValueError: Dimensions must be equal, but are 45 and 400 for '{{node lstm_1/while_11/SelectV2}} = SelectV2[T=DT_FLOAT](lstm_1/while_11/Tile, lstm_1/while_11/lstm_cell_35/mul_2, lstm_1/while_11/Placeholder_2)' with input shapes: [?,45], [?,400], [?,400].
inputs = keras.Input(shape=(timesteps, len(paramlist)), dtype="float32")
# pad_inputs = preprocessing.sequence.pad_sequences(X_train_arr, value=-1, padding='post')(inputs)
mask_inputs = Masking(mask_value=-1.)(inputs)
l1 = LSTM(units=400, activation=activation_method_LSTM, use_bias=False, return_sequences=True, name='lstm_1')(inputs, mask=mask_inputs)
l2 = Dropout(0.3)(l1)
l3 = LSTM(units=400, activation=activation_method_LSTM, use_bias=False, return_sequences=True, name='lstm_2')(l2)
l4 = Dropout(0.3)(l3)
outputs = Dense(n_out)(l4)

model = keras.Model(inputs, outputs)

keras.utils.plot_model(model, 'final_approach_prediction_model.png', show_shapes=True)

model.summary()

【问题讨论】:

    标签: python tensorflow keras lstm


    【解决方案1】:

    l1 = LSTM(...) 的问题。 LSTM 采用特定的输入维度,它采用输入或 mask_inputs。正如错误所说的预期尺寸 45 和 400 但给定尺寸 [?,45] 和 [?, 400]

    找到下面的工作示例代码

    import tensorflow as tf
    n_out = 24
    samples, timesteps, features = 32, 10, 8
    model = tf.keras.models.Sequential()
    inputs = tf.keras.Input(shape=(timesteps, features), dtype="float32")
    mask = tf.keras.layers.Masking(mask_value=-1.)(inputs)
    l1 = tf.keras.layers.LSTM(units=400, activation='relu', use_bias=False, return_sequences=True, name='lstm_1')(mask)
    l2 = tf.keras.layers.Dropout(0.3)(l1)
    l3 = tf.keras.layers.LSTM(units=400, activation='relu', use_bias=False, return_sequences=True, name='lstm_2')(l2)
    l4 = tf.keras.layers.Dropout(0.3)(l3)
    outputs = tf.keras.layers.Dense(n_out)(l4)
    
    model = keras.Model(inputs, outputs)
    

    【讨论】:

      猜你喜欢
      • 2021-05-27
      • 2018-07-25
      • 2018-06-12
      • 1970-01-01
      • 2022-01-19
      • 2022-01-20
      • 2019-01-21
      • 2018-06-30
      • 1970-01-01
      相关资源
      最近更新 更多