【发布时间】: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