训练顺序模型时索引不匹配

时间:2019-11-02 13:57:24

标签: tensorflow keras

我遵循了在此站点上找到的所有代码:

https://appliedmachinelearning.blog/2019/10/31/event-vs-non-event-classification-in-financial-documents-text-classification/

但是在此行出现错误:

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

1 个答案:

答案 0 :(得分:1)

自我解释:

该嵌入正在尝试查找值4291,但是您的嵌入中只有4000个令牌。

因此,问题可能是:

  • train_X的值不应> = 4000;或
  • 应该已使用足够的令牌创建嵌入:input_dim = train_X.max() + 1

如何处理此问题很大程度上取决于您如何预处理数据。如果您要丢弃稀有单词或将其替换为一些“ rare_word”令牌,或者是否要让嵌入词在训练集中包含所有单词,等等。