我在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)]]
任何帮助?
答案 0 :(得分:3)
我也遇到了相同的错误,经过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)
输入单词的索引超出了词汇表的长度,或者词汇表中未包含的新单词。
请尝试增加词汇量。