Ошибка несоответствия входной формы Keras для многофакторной модели классификации CNN - PullRequest
0 голосов
/ 20 июня 2020

Вот мой код:

model = Sequential()
model.add(Conv1D(32, kernel_size=3,
                 activation='relu',
                 input_shape=(14,1)))
model.add(MaxPooling1D(pool_size=1))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='softmax'))
model.summary()
model.compile(loss=keras.losses.categorical_crossentropy,
              optimizer=keras.optimizers.Adadelta(),
              metrics=['accuracy'])

model.fit(X_train.values, y_train.values,
          batch_size=4,
          epochs=1,
          verbose=2,
          validation_data=(X_test.values,y_test.values))

И ошибка: Error when checking input: expected conv1d_35_input to have 3 dimensions, but got array with shape (13166, 14)

Как было предложено в других сообщениях, я настроил сглаживание слоя перед выходным слоем, но это не сработало.

Мой X_train.values.shape дает (13166, 14) Есть предложения, как мне это исправить?

1 Ответ

1 голос
/ 21 июня 2020

Вам нужно изменить форму X_train.values с (13166, 14) на (13166, 14, 1), поскольку ваша входная форма сети CNN - (None, 14, 1). Это может решить вашу проблему:

X_train.values.reshape([-1,14,1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...