Довольно понятно:
Вложение пытается найти значение 4291, но у вас есть только 4000 токенов в вашем вложении.
Итак, проблема в том, что:
train_X
не должно иметь значения> = 4000;или - вложение должно быть создано с достаточным количеством токенов:
input_dim = train_X.max() + 1
.
То, как вы собираетесь с этим обращаться, во многом зависит от того, как вы обрабатываете ваши данные. Если вы отбрасываете редкие слова или заменяете их каким-либо токеном "rare_word", или если вы хотите, чтобы вложение содержало все слова в обучающем наборе и т. Д.