高版本pytorch运行低版本pytorch常见问题汇总记录

文章目录

  • 1. Expected a 'cuda' device type for generator but found 'cpu'
  • 2. cannot re-initialize CUDA in forked subprocess...
  • 3. 多个cuda device的问题
  • 4. loss[0].item()
  • 5. jupyter lab指定虚拟环境

自己的环境是 ubuntu20.04+cuda11.5+pytorch1.12.1,在git上下载一些古老的代码时,requirements.txt中的pytorch版本基本是0.4以下,因此总报错,这里记录一下常见的错误,方便下次查找。

1. Expected a ‘cuda’ device type for generator but found ‘cpu’

在加载dataloader时候遇到的这个错误

self.dataloader = DataLoader(
            dataset=self.dataset,
            batch_size=self.batchsize,
            shuffle=True,
            num_workers=4
        )


"""------------------>"""

self.dataloader = DataLoader(
            dataset=self.dataset,
            batch_size=self.batchsize,
            shuffle=True,
            num_workers=4,
            generator=torch.Generator(device='cuda')
        )

问题1的参考链接

2. cannot re-initialize CUDA in forked subprocess…

将上面修改了以后,又遇到了这个问题…醉了

num_workers = 0

问题2的参考链接

3. 多个cuda device的问题

要么是模型分布在多个cuda上,要么是tensor在多个device上
.cuda() 均修改成.to(device)

if config.n_gpu==1:
    self.G = self.G.to(device)
    self.D = self.D.to(device)
    # self.G = torch.nn.DataParallel(self.G).cuda(device=0)
    # self.D = torch.nn.DataParallel(self.D).cuda(device=0)

4. loss[0].item()

旧版本的很喜欢写这个,把0去掉,---> loss.item()

5. jupyter lab指定虚拟环境

# 第一步,切换到想要添加的虚拟环境:
conda activate pytorch1.7.0

# 第二步,安装ipykernel包
conda install ipykernel

# 第三部,执行如下命令,并确定环境的名称(此处设置为我需要的虚拟环境python37)
python -m ipykernel install --user --name pytorch1.7.0


你可能感兴趣的:(pytorch系列,pytorch)