运行时错误:生成器需要“cuda”设备类型,但发现“cpu”

Fad*_*dwa 8 python pytorch

我正在尝试训练PeleeNet pytorch并收到以下错误

在此输入图像描述

train.py 80号线 在此输入图像描述

pelee_voc 列车配置 在此输入图像描述

Zac*_*mzi 17

阅读@Dwijay 的答案中提供的链接,我找到了一个不需要您进行任何源代码更改的答案。事实上,我想说更改 PyTorch 源代码是非常危险的。但修改的想法Generator是好的。事实上,默认情况下,随机数生成器在 CPU 上生成数字,但我们希望它们在 GPU 上生成。

因此,实际上应该修改数据加载器实例化以适应默认 cuda 设备的使用。GitHub 评论中强调了这一点:

data_loader = data.DataLoader(
    ...,
    generator=torch.Generator(device='cuda'),
)
Run Code Online (Sandbox Code Playgroud)

此修复程序在 PyTorch 1.11 中对我有效(并且在 PyTorch 1.10 中对其他用户有效)。


Fad*_*dwa 6

在数据加载器中关闭 shuffle 参数解决了这个问题。在这里得到答案表格。