copy_if failed to synchronize
解决方法:
data为CNN中间层的Tensor,
到处打印max()和min(),能查到哪些值异常。
print(data.max(),data.min())
我的情况:SSD目标检测网络中,
ssd中损失函数类MultiBoxLoss中,
生成标签的代码:
conf_t = torch.Tensor(num, num_priors)
这个代码生成的随机数,导致标签可能不在0到1之间。
改为:
conf_t = torch.zeros(num, num_priors)
网上的说法:
这个问题是我在使用SSD做目标检测时遇到的,我要检测的目标有5种类别,所以我在data/config.py中的num_classes参数写了5,经过多方查找,发现了一个没注意到的细节,类别应该是5+1,那个1应该是背景。
还有一个原因就是标签的标号没有从0开始。
但是我这做的是单分类,用的bceloss,我也用了sigmoid ,再看看