【发布时间】:2019-07-09 18:01:14
【问题描述】:
我将一个 1 维 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))
【问题讨论】: