IndexError: 索引10超出了大小为10的轴1的界限。

3

我正在使用CNN将图像分类为30个不同的类别,在运行CNN时,我得到了以下的回溯信息 -

Traceback (most recent call last):
File "thapar.py", line 165, in <module>
Y = np_utils.to_categorical(labels, num_classes)
File "/home/rishav/anaconda3/envs/tensorflow/lib/python3.6/site-packages/keras/utils/np_utils.py", line 31, in to_categorical
categorical[np.arange(n), y] = 1
IndexError: index 10 is out of bounds for axis 1 with size 10

Python 3.6
Keras 2.1.5使用tensorflow后端
Ubuntu 16.04

我已经查看了其他类似的问题,但是没有找到相似之处。

如何解决这个问题?

编辑:

num_classes = 30
num_of_samples = img_data.shape[0]
labels = np.ones((num_of_samples,),dtype='int64')
labels[0:20]=0
labels[20:40]=1
labels[40:60]=2
labels[60:80]=3
labels[80:100]=4
labels[100:120]=5
labels[120:140]=6
labels[140:160]=7
labels[160:180]=8
labels[180:200]=9
labels[200:220]=10
labels[220:240]=11
labels[240:260]=12
labels[260:280]=13
labels[280:300]=14
labels[300:320]=15
labels[320:340]=16
labels[340:360]=17
labels[360:380]=18
labels[380:400]=19
labels[400:420]=20
labels[420:440]=21
labels[440:460]=22
labels[460:480]=23
labels[480:500]=24
labels[500:520]=25
labels[520:540]=26
labels[540:560]=27
labels[560:580]=28
labels[580:600]=29

names = 

['弯曲','碗','爪','拳头','好','大拇指向上','A','B','C','D','E','F','G','H','I','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y']

Y = np_utils.to_categorical(labels, num_classes)

请分享与您的问题相关的隔离代码。(labelsnum_classes包含什么?) - benjaminplanche
Edited ,please check - Bing
1
你的代码可以在我的电脑上正常运行,生成了预期形状为(600, 30)Y。但是根据你的错误跟踪,我觉得你使用的num_classes = 10与包含大于9值的labels不匹配。 - benjaminplanche
1个回答

0

最近,我遇到了同样的问题,后来我发现只有一些图片会出错,我移除了这些图片,然后就完美解决了。


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - tomerpacific

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接