我遵循了在此站点上找到的所有代码:
但是在此行出现错误:
model.fit(train_X, y_train, epochs=10, batch_size=32)
InvalidArgumentError: indices[12,78] = 4291 is not in [0, 4000)
[[node embedding_1/embedding_lookup (defined at /opt/conda/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py:1751) ]] [Op:__inference_keras_scratch_graph_1942]
Function call stack:
keras_scratch_graph
完整代码可在此处获取:
https://github.com/shantanuo/stack_question/blob/master/nlp.ipynb
答案 0 :(得分:1)
自我解释:
该嵌入正在尝试查找值4291,但是您的嵌入中只有4000个令牌。
因此,问题可能是:
train_X
的值不应> = 4000;或input_dim = train_X.max() + 1
。 如何处理此问题很大程度上取决于您如何预处理数据。如果您要丢弃稀有单词或将其替换为一些“ rare_word”令牌,或者是否要让嵌入词在训练集中包含所有单词,等等。