pytorch Assert错误:Torch未编译CUDA MacOS [已关闭]

3bygqnnd  于 2023-01-09  发布在  Mac
关注(0)|答案(1)|浏览(989)

1小时前关闭。
Improve this question
我克隆了一个git repo并尝试运行代码。然而,我意识到一些操作被加载到了GPU上。问题是MacOS不支持NVIDA,所以我在运行代码时不断得到Assert错误(如下所示)。任何建议都将受到感谢。
注意,代码相当庞大,所以我不能遍历每个文件并卸载这些操作。

for batch_idx, data in enumerate(valid_generator):
    X, Y, X_label, Y_label = data[0].squeeze(-1).to(device), data[1].squeeze(-1).to(device), data[2].squeeze(-1).to(device), data[3].squeeze(-1).to(device)

   transform = SpatialTransform_unit().cuda()

    for param in transform.parameters():
        param.requires_grad = False
        param.volatile = True

    
    names = sorted(glob.glob(datapath + '/OASIS_OAS1_*_MR1/slice_norm.nii.gz'))

    grid_4 = generate_grid(imgshape_4)
    grid_4 = torch.from_numpy(np.reshape(grid_4, (1,) + grid_4.shape)).cuda().float()

我得到下面的错误

raise AssertionError("Torch not compiled with CUDA enabled")
AssertionError: Torch not compiled with CUDA enabled
kh212irz

kh212irz1#

在代码的开头添加这段代码就足够了(告诉PyTorch使用CPU的代码行):

device = torch.device("cpu")

然后,您需要将.cuda()全局替换为.to(device)(您可能有机会在IDE的帮助下在所有项目代码中*自动执行此操作
如果错误仍然存在,请尝试手动设置shell中变量CUDA_VISIBLE_DEVICES的值:

export CUDA_VISIBLE_DEVICES=""

如果无法在混乱的代码中执行大量方法替换,或者如果您打算在将来使用模型:

考虑使用***带GPU的远程机器***。根据我的经验,这通常是Mac用户所做的。如果你的模型不是很大,你可以使用Google Colab或其他类似的服务。
祝你好运:)

相关问题