PyTorch:copy_if 失败同步:触发设备端断言。

4
获取以下错误:
运行时错误:copy_if无法同步:设备端触发了断言
尝试执行以下操作时:
如果torch.nonzero(gt_class_ids > n_classes).size()[0] > 0:
其中gt_class_ids是大小为[128]的Torch.cuda.LongTensor,n_classes = 81。 运行在cuda 9.x上
1个回答

4
以下代码适用于我。
n_classes = 81
gt_class_ids = torch.from_numpy(numpy.random.randint(1, 100, size=128)).long()

if torch.nonzero(gt_class_ids > n_classes).size(0) > 0:
    print('okay')

一个建议:在不使用cuda的情况下运行代码,这样您就能看到真正的错误信息。有时当我们使用cuda运行代码时,会出现 device-side assert triggered 的错误信息,它会隐藏真正的错误信息。


1
强烈赞同检查CPU的建议,我认为这些错误通常是由于某些索引错误导致的。 - A.D
为更好地理解真正的错误,您还可以使用标志 CUDA_LAUNCH_BLOCKING=1 运行,有时这会有所帮助。 - relh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接