`InvalidArgumentError` произошел при попытке подгонки модели CNN в keras?

#python #error-handling #keras

#python #обработка ошибок #keras

Вопрос:

Я построил сверточные модели для задачи классификации предложений, и компиляция модели прошла успешно. Однако, когда я пытаюсь подогнать модель к моему набору данных для обучения / проверки, я получаю странное сообщение invalid argument error ниже:

 InvalidArgumentError: indices[120,1] = 77 is not in [0, 70)
   [[{{node embedding_32/embedding_lookup}} = GatherV2[Taxis=DT_INT32, Tindices=DT_INT32, Tparams=DT_FLOAT,
  

_device=»/задание: локальный хост/реплика: 0/задача: 0/ устройство: процессор: 0″](embedding_32/вложения / чтение,
встраивание_32/Приведение, встраивание_32/встраивание_lookup/ось)]]

вот архитектура моей модели (скриншот):

введите описание изображения здесь

Я новичок в keras фреймворке и не очень понимаю эту ошибку. Дело в том, что компиляция модели выполнена успешно, но подгонка модели выдала указанную выше ошибку.

Есть ли способ отладить эту ошибку? кто-нибудь может указать мне, как заставить это работать? есть идеи?

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

1. Ошибка просто говорит о том, что при внедрении ожидаются индексы в диапазоне [0, 69] с 69 включительно, но он увидел индекс со значением 77. Это связано с размером словаря (первый параметр в вашем внедрении).

2. @MatiasValdenegro Я попробовал то, что вы мне предложили, но теперь я получил эту ошибку: InvalidArgumentError: indices[12,0] = 328 is not in [0, 70) [[{{node embedding_15/embedding_lookup}} = GatherV2[Taxis=DT_INT32, Tindices=DT_INT32, Tparams=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"](embedding_15/embeddings/read, embedding_15/Cast, embedding_15/embedding_lookup/axis)]] . как я могу это исправить? есть идеи?

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

4. @MatiasValdenegro что мне делать? не могли бы вы указать мне, что делать, или возможное конкретное решение для преодоления этой проблемы? Спасибо

5. Я уже сделал, я сказал вам проверить, что словарь подходит для обучающих и тестовых наборов, и что ни один индекс не превышает размер словаря. Я не эксперт по NLP, и вы не предоставили никакой дополнительной информации (например, больше кода).

Ответ №1:

Ошибка говорит о том, что ваш входной индекс 77 больше, чем 69, который вы Embedding ожидаете. У вас есть два варианта:

  • Либо увеличьте размер ввода для встраивания до 78, либо действительно до np.max(x_train) 1 или
  • Дважды проверьте свои x_train , чтобы убедиться, что индексы находятся в пределах диапазона [0,70).

Из документации:

input_dim: int > 0. Размер словаря, т. е. максимальный целочисленный индекс 1.

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

1. Я попробовал ваше решение, но все та же ошибка. Чтобы вы поняли мою реализацию, я создал основной код для этой проблемы , чтобы увидеть мою реализацию. не могли бы вы взглянуть на мою суть и почему ваше решение также не работает? Спасибо.

2. Это действительно зависит от того, как вы предварительно обрабатываете свои данные sents x_train . Ваш alphabet_size должен быть правильным в основном.