CudNN Неверная форма ввода - PullRequest
0 голосов
/ 09 июля 2019

Я ввожу 1-й размерный массив в слой CuDNNLSTM длиной 19 целых чисел.Поэтому я установил входную форму на input_shape = (19,), однако при попытке обучить модель выдает следующую ошибку.Я вижу, что он ожидает массивный массив с 3-м измерением, но не уверен, почему

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))

1 Ответ

0 голосов
/ 09 июля 2019

Если у вас есть последовательность с 19 целыми числами, то размер временного шага должен быть 19, а размерность объектов должна быть 1, то есть форма входа в вашу сеть должна быть (19, 1).

Вы также должныизмените ваши данные в соответствии с новой формой ввода.

...