我正在尝试在 Windows 11 上使用 Anaconda3 安装带有 Cuda 的 PyTorch:
我尝试过的:
很多文章说我不需要独立安装CUDA,所以我卸载了系统范围的版本 - 但可以预见的是,这没有什么区别。无论我尝试什么,
torch.cuda.is_available()
始终是错误的。
我认为我的结论是nVidia驱动程序必须与CUDA版本匹配,但对我来说这是违反直觉的。我一直训练自己安装最新、最好的 nVidia 驱动程序(我用我的机器玩游戏,就像我想用它进行机器学习一样)——我的理解是否正确,让 PyTorch 与 CUDA 一起工作的唯一方法是将我的 GPU 驱动程序从 551.23 降级到支持 CUDA 12.1 的驱动程序?
解决方案 - 查找并卸载非 CUDA torch 安装!
就我而言,该问题是由另一个系统范围内的 torch 安装引起的。在开始使用 Anaconda 之前,我有一种愚蠢的印象,认为使用普通 Python 就可以逃脱惩罚。此外,我混合使用了系统范围和用户安装的软件包 - 这是一个灾难的好方法。
@talonmies 提供了一个很棒的提示:打印出 torch.cuda.get_arch_list()
的输出。就我而言,它是一个空列表
[]
,表明加载了错误的火炬库。我在 Anaconda 环境之外使用常规 Python 运行 pip list,你瞧,我安装了非 cuda 火炬!我已经使用 pip 卸载了与 torch/pytorch 有关的所有内容(并注意到一些奇怪的 ~orch 残留物,我强行清除了) - 然后一切都很好。
经验教训 - 当使用 Python 做复杂的事情(例如 ML)时,总是从虚拟环境开始(Anaconda、Miniconda、VirtualEnv,等等),否则你以后会后悔的。