我正在将1维numpy数组输入到19个整数长的CuDNNLSTM层中。所以我将输入形状设置为input_shape =(19,),但是当尝试训练模型时,它给了我以下错误。我可以看到它期望具有第3维的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))
答案 0 :(得分:0)
如果您有一个由19个整数组成的序列,则timesteps维度应为19,features维度应为1,这意味着网络的输入形状应为(19, 1)
。
您还应该调整数据形状以匹配新的输入形状。