CudNN 无效的输入形状

CudNN Invalid input shape

我正在将一维 numpy 数组输入到长度为 19 个整数的 CuDNNLSTM 层中。所以我将输入形状设置为 input_shape=(19,) 但是在尝试训练模型时它给了我以下错误。我可以看到它期待一个具有第三维的 numpy 数组,但不确定为什么

ValueError: Input 0 of layer cu_dnnlstm is incompatible with the layer: 
expected ndim=3, found ndim=2. Full shape received: [None, 19]

我的模型的完整代码可以在这里看到,问题出在第一个输入层

model = Sequential()
model.add(CuDNNLSTM(HIDDEN_SIZE, input_shape=(19,)))
model.add(Dropout(DROPOUT_VALUE))
for _ in range(HIDDEN_LAYERS):
    model.add(CuDNNLSTM(HIDDEN_SIZE, return_sequences=True))
    model.add(Dropout(DROPOUT_VALUE))
model.add(TimeDistributed(Dense(1, activation='softmax')))
opt = tf.keras.optimizers.Adam(lr=1e-3, decay=1e-5)
model.compile(loss='categorical_crossentropy', optimizer=opt, metrics= 
['mse'])

model.fit(x_train, y_train, epochs=EPOCH_COUNT, validation_data=(x_test, 
y_test))

如果您有一个包含 19 个整数的序列,则时间步长维度应为 19,特征维度应为 1,这意味着网络的输入形状应为 (19, 1)

您还应该重塑数据以匹配新的输入形状。