pytorch奇葩错误

https://blog.csdn.net/zcgyq/article/details/83085028

访问本站观看效果更佳

在pytorch中遇到如下错误:

libraries/torch/extra/cunn/lib/THCUNN/ClassNLLCriterion.cu:52: void 
cunn_ClassNLLCriterion_updateOutput_kernel(Dtype *, Dtype *, Dtype *, long *, 
Dtype *, int, int, int, int) [with Dtype = float, Acctype = float]: block:
 [0,0,0], thread: [2,0,0] Assertiont >= 0 && t < n_classesfailed.


造成这个问题的原因就是在做分类任务时,训练数据中存在超出分类数目的标签。比如我一共设置了8个类,但是训练数据中的标签里出现了9,就会报这个错误。
那么问题来了,这里有一个陷阱。
训练数据中的标签含0也会报上述错误。这个就非常诡异了。一般我们都从0开始数,但是在pytorch里0以下的类别标签都是要报错的。所以如果类别标签从0开始,要给所有类别标签都加上一。
 

猜你喜欢

转载自blog.csdn.net/Dongjiuqing/article/details/100086144