#python #keras #tf.keras
#python #keras #tf.keras
Вопрос:
Я определил свою модель как:
model = Sequential()
model.add(Embedding(12635, 300, weights=[embedding_matrix],
input_length=140, trainable=False))
model.add(Conv1D(filters=32, kernel_size=3, padding='same', activation='relu'))
model.add(MaxPooling1D(pool_size=2))
model.add(Dropout(0.2))
model.add(LSTM(300))
model.add(Dropout(0.2))
model.add(Dense(1, activation='sigmoid'))
Однако при обучении модели я получаю сообщение об ошибке, что indexes[15, 138] = 12635 отсутствует в [0, 12635). Как мне это исправить?
Ответ №1:
Ошибка сообщает вам, что ожидается, что ваши входные данные будут находиться в диапазоне [0, input_dim), где input_dim — это параметр, который вы передали на уровень встраивания. Но данные, которые вы передаете, имеют большее значение.
Перед передачей входных данных убедитесь, что все ваши входные значения меньше, чем input_dim . Это просто выглядит как единичная ошибка, когда размер вашего словаря равен 12635 1. Обратите внимание, что обычной практикой является исключение значения 0 в качестве идентификатора токена. Проверьте, резервирует ли ваш токенизатор 0, а затем используйте «индекс токена 1» в качестве идентификатора токена.
Комментарии:
1. Да, 0 token_id выдавал ошибку. Исправлено, большое спасибо!
2. Если вы считаете вопрос ответом, пожалуйста, отметьте его так, приняв ответ. В противном случае он все равно будет отображаться в списке вопросов без ответов. Спасибо.