这个问题小虎今天刚刚遇到,问题原因有很多。但是由于使用了cuda运行,报错看不出来。解决方法是用cpu运行来看错误出在哪里。
环境
Python version is: 3.10.13 | packaged by Anaconda, Inc. | (main, Sep 11 2023, 13:24:38) [MSC v.1916 64 bit (AMD64)]
CUDA version is: 11.8
PyTorch version is: 2.1.2+cu118
Torchvision version is: 0.16.2+cu118
解决方法
将运行设备改成cpu,发现问题出在数据的label超过了类数量。比如[0,1, 255]
。其实255是数据增强补足的空白处。解决方法就是将255标签转换成0背景。
# set ignored index as background index
Target[Target == 255] = 0
心得
我查了资料,发现错误的情况很多,不止我出现的这一种。而且cuda报错的位置也和cpu运行报错位置不一样。这里提供一种思路给大家参考。