InvalidArgumentError(参见上面的回溯):indices [1] = 10不在[0,10]

时间:2017-03-02 22:43:35

标签: python python-3.x tensorflow

我在ubuntu和python 3.5上使用tensorflow 1.0 CPU。

我改编了一个tensorflow的例子来处理我自己的数据集https://github.com/martin-gorner/tensorflow-mnist-tutorial

只要输出数小于10,它就能正常工作。当输出数大于10时,我得到错误:

InvalidArgumentError (see above for traceback): indices[1] = 10 is not in [0, 10)

[[Node: Gather_4 = Gather[Tindices=DT_INT64, 
     Tparams=DT_FLOAT, 
     validate_indices=true, 
     _device="/job:localhost/replica:0/task:0/cpu:0"](grayscale_to_rgb, ArgMax_4)]]

任何帮助?

2 个答案:

答案 0 :(得分:3)

我也遇到了相同的错误,经过2天的摸索之后,我才意识到有两个主要原因会导致我的代码抛出该错误,我在下面提到了它们,以帮助遇到同样问题的任何人:

  1. 数据和标签的尺寸不同

  2. 就我而言,问题是 在建立我的词汇表时,我已经索引了1和 不是从0开始。但是嵌入式层从0开始索引。因此 一直给我提到的错误。我通过索引我的错误来修复错误 词汇从0开始。

    先前的代码:

    dictionary = Counter(words)
    sorted_split_words = sorted(dictionary, key=dictionary.get, reverse=True)
    vocab_to_int = {c: i for i, c in enumerate(sorted_split_words, 1)}
    

    要修复此问题,我将最后一行更改为(已删除1):

    vocab_to_int = {c: i for i, c in enumerate(sorted_split_words)}
    

答案 1 :(得分:1)

输入单词的索引超出了词汇表的长度,或者词汇表中未包含的新单词。

请尝试增加词汇量。