CUDA ERROR: device-side assert triggered at 和unable to get repr for <class ‘torch.Tensor‘>问题及解决思路

可能原因是你的label使用了插值函数order = 3

lb = scipy.ndimage.zoom(lb, (288 / 192, 288 / 192, 1), output=None, order=3, mode='constant')

导致label出现了小于0的值,或者大于类别数 - 1 的值(比如算上背景是0 1 2 三类,label出现了大于2和小于0的值),在计算loss的时候,就会出错

遇到这种问题,可以点进dataset里面

查看自己是否对label进行插值过,并且使用的是order等于3来进行插值

如果有,那么你也可以把order改为0试试,order改为0,插值完还是整数,就不会越界了

一般做完这个操作就解决了

还有

临时的解决办法,

把label大于类别数- 1 的值跟小于0的值截断掉,也可以解决问题

比如我的是5分类(加上背景),所以把大于4的值跟小于0的值截断

# lb[lb > 4] = 4
# lb[lb < 0] = 0

猜你喜欢

转载自blog.csdn.net/Wjeana/article/details/129876926