问题如下
RuntimeError: CUDA error: device-side assert triggered
CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
原因1
在我的这个问题里面,是由于某些标签超了范围导致的,举个例子:如果你一共设置了8个类,但是训练数据中的标签里出现了9,就会报这个错误。
解决1
这时候需要改标签,或者把输出的类别的数量提升到数据集标签含有的最大范围,比如说,经过查看,数据集中最大的标签的id是90,那我就把代码改成输出90类就可以了,这样造成的后果就是有几类是没有的,也没有很大的关系,没有就没有吧。
原因2
代码输出的类别数量有问题,一共是5分类的,你的代码最后一层输出是4分类的,也会有这样的错误,本质上和上面的问题一样,还是相当于标签超了范围。
解决2
更改最后一层代码的输出结构