可能原因是你的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