Python PyTorch:copy_如果同步失败:触发设备端断言

Python PyTorch:copy_如果同步失败:触发设备端断言,python,machine-learning,pytorch,Python,Machine Learning,Pytorch,获取以下错误: 运行时错误:同步失败时复制\u:触发设备端断言 尝试执行时: if torch.nonzero(gt\u class\u id>n\u class).size()[0]>0: 其中gt_类\u id是尺寸为[128]和n_类=81的Torch.cuda.LongTensor 在CUDA9.x上运行以下代码对我很有用 n_classes = 81 gt_class_ids = torch.from_numpy(numpy.random.randint(1, 100, size=12

获取以下错误:

运行时错误:同步失败时复制\u:触发设备端断言

尝试执行时:

if torch.nonzero(gt\u class\u id>n\u class).size()[0]>0:

其中
gt_类\u id
是尺寸为[128]和
n_类
=81的
Torch.cuda.LongTensor

在CUDA9.x上运行以下代码对我很有用

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运行代码时,它会发出错误消息,并触发
设备端断言
,从而隐藏真正的错误消息。

强烈支持检查CPU的建议,在我看来,这些错误通常是由于某些索引错误造成的。为了更好地了解真正的错误是什么,您还可以使用标志
CUDA\u LAUNCH\u BLOCKING=1运行,有时这会有所帮助