解决错误"IndexError: Target 5 is out of bounds."
报错背景:
在用pytorch进行建立自己的dataset,读取程序时,在运行softmax时报错。
debug发现y_hat的shape是(batch_size,2),这里的2是num_outputs定义的。然而y的shape是(batch_size,10),这里的10 是标签数。由于两个数不对等,也就是维度不等,所以在计算loss是报错。
问题分析:
多分类网络softmax输出的节点数与标签数不一致,导致在计算loss时报错Target N is out of bounds。
解决方法:
检查输出节点数与标签数是否一致。
并且将输出节点数num_outputs更改为标签数。