Ошибка значения: ошибка при проверке ввода: ожидаемый dense_3_input должен иметь форму (33,), но получен массив с формой (34,)

#python #tensorflow #keras #deep-learning

#python #тензорный поток #keras #глубокое обучение

Вопрос:

Я прохожу курс — Введение в глубокое обучение из Kaggle.com . Когда я запускаю код

 early_stopping = keras.callbacks.EarlyStopping(
patience=10,
min_delta=0.001,
restore_best_weights=True,
)

history = model.fit(
    X_train, y_train,
    validation_data=(X_valid, y_valid),
    batch_size=512,
    epochs=1000,
    callbacks=[early_stopping],
    verbose=0, # hide the output because we have so many epochs
)
  

Я получаю эту ошибку.

 Error when checking input: expected dense_3_input to have shape (33,) but got array with shape (34,)
  

полный код. Пожалуйста, помогите мне объяснить ошибку. Заранее спасибо 🙂

Комментарии:

1. Пожалуйста, укажите код для модели.

2. Каков размер ваших X_train, y_train, X_valid и y_valid?

3. Я взглянул на ссылку, которую вы упомянули. Похоже, что набор данных действительно имеет 34 функции, а вывод двоичный. Так что, возможно, они допустили ошибку, и значение input_shape должно быть равно 34

4. Теперь он работает. В наборе данных есть пустой объект. Я его не отбрасывал. Не удаляя его, input_shape должен быть 34, поскольку в наборе данных 34 объекта. Теперь, отбросив пустую функцию, все работает нормально. Спасибо.

Ответ №1:

Пишу ответ в разделе ответов, хотя он присутствует в разделе комментариев в интересах сообщества.

В наборе данных есть пустой объект. Я его не отбрасывал. Не удаляя его, input_shape должен быть 34, поскольку в наборе данных 34 объекта. Теперь, отбросив пустую функцию, все работает нормально.