1、分类任务中碰到RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors…CUDA_LAUNCH_BLOCKING=1
原因:通常是因为数据集的分类标签(label)中存在不合理的标签。比如:n分类的标签应该是range(0, n),但是数据集中却出现了其他标签。
解决方法:检查数据集标签。
如果排除了标签问题,请看解决RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors…CUDA_LAUNCH_BLOCKING=1
2、使用nn.CrossEntropyLoss()等分类任务常用的损失函数时碰到RuntimeError: “nll_loss_forward_reduce_cuda_kernel_2d_index“ not implemented for ‘Float‘
criterion = nn.CrossEntropyLoss()
loss = criterion(y_hat, y) #y_hat是模型输出,y是数据标签(label)
原因:可能是因为 y 不是整型,因为在模型中传递的数据要求是Float型,但是作为标签传递给损失函数的数据必须是Int型。