【mmseg】debug心路历程:CUDA kernel errors might be asynchronously reported at some other API call ...

目录

报错:

解决步骤:

1.报错详细信息定位

2.可能报错1:num_class设置不对

3.可能报错2:模型输出尺寸不对


报错:

CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.

解决步骤:

1.报错详细信息定位

首先这种模糊的报错信息难以定位到是什么具体的报错代码位置,所以我们要打印更详细的报错说明,找到报错的代码位置。给代码开始位置添加一下两行:

import os
os.environ['CUDA_LAUNCH_BLOCKING'] = '1'

这时候报错会定位到实际位置,大家对症下药解决即可。

2.可能报错1:num_class设置不对

检查自己的数据集label对应的值是否有超过num_class的值,比如num_class=3的数据集,label应该为[0,1,2],不应该出现除这三个值以外的值。 

3.可能报错2:模型输出尺寸不对

通常模型的输入尺寸为3是不会变的,但是输出尺寸的channel应该为num_class的大小,因此,此处是最容易忘记改的,本人就是。。。

记得将模型的out_channel改为num_class!!!

整理不易,欢迎一键三连!!!

猜你喜欢

转载自blog.csdn.net/qq_38308388/article/details/131046609