【问题标题】:CudNN Invalid input shapeCudNN 输入形状无效
【发布时间】: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))

【问题讨论】:

    标签: python numpy keras cudnn


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2018-12-28
      • 1970-01-01
      • 2018-02-16
      相关资源
      最近更新 更多