#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
должен быть правильным в основном.