初学UNET时,利用一个新的数据集(PASCAL VOC)来修改UNET代码时遇到的问题总结:
遇到问题:
【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.】
问题解决:
我发现输出类别的数目没有修改,即原来代码的类别是2,现在的类别是21(包括背景,VOC2012数据集分为20类,包括背景为21类),因此出现错误。
总结:
在利用代码修改内容时,需要注意以下三点:
1. 自定义数据集,就是新写一个Dataset类。
2. 改写输出的模型,一般你的输入都是三通道(即彩色图片),输入参数 (in_channels)一般不用改,但是输出的类别(num_classes)要改成新数据集的类别。
3. 图像分割时需要注意,有的模型会包括背景,有的会不包括背景,如果包含背景num_classes需要+1。