未解决问题,发出来仅作为踩坑参考。教训是,可以的话尽量避开3.12及之后的新版本,使用3.10或3.11版本进行使用gpu的pytorch深度学习实验。

前提

1.确认已安装CUDA,并知道当前已安装的CUDA版本

2.从始至终使用conda管理依赖,未使用pip

3.环境:Win10-64,Python3.12.11,CUDA 12.1

问题

按照pytorch官网提供的2.5.1 GPU版命令

conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 pytorch-cuda=12.1 -c pytorch -c nvidia

尝试安装对应版本的torch,print(torch.cuda.is_available())却输出false

分析

conda list查看包细节:

发现当前环境内的pytorch竟然是cpu版本的。明明使用了官网提供的GPU版命令,为什么会这样呢,神秘。

解决方案

(以下为失败方案的分割线,最终采用的解决方法请直接跳到下一单元)


询问gpt后得到建议:

解决尝试1(不成功)

首先尝试修改通道优先级。使用如下命令:

conda config --add channels pytorch
conda config --add channels nvidia
conda config --set channel_priority strict

随后再运行官网提供的命令,获得如下警示:

大约是严格通道优先级导致了新的依赖问题。放弃该方案,使用如下命令接触优先级:

conda config --set channel_priority flexible

测试后显示优先级已经接触设置,再运行conda intsall时无预警。但原始问题未解决,于是尝试方案二。

解决尝试2(不成功)

使用有明确指定的命令进行安装。使用如下命令:

conda install pytorch=2.5.1=*cuda* torchvision=0.20.1=*cuda* torchaudio=2.5.1=*cuda* pytorch-cuda=12.1 -c pytorch -c nvidia

意料之外获得如下提示:

好神秘。似乎是python版本兼容性的问题。决定去anaconda官网上看看,确认下packages和python版本的对应。

解决尝试3(不成功)

anaconda官网pytorch/pytorch 2.5.1信息页面,找到对应GPU-CUDA版本文件下载到本地site-packages内。

cd到本地site-packages目录,使用如下代码解压本地.bz2包并安装(Downloading and Extracting进度为%0可能会持续一段时间,耐心等待):

conda install --use-local {文件名称(包含.bz2后缀)}

结束后可见安装成功:

但尝试import torch还是报错了,显示缺少模块。鉴于情况奇怪,没空继续研究,于是停止进一步修正尝试。


最终方案

放弃在Python3.12.11环境下继续配置深度学习环境,转而使用Python3.10的版本进行实验。博主太菜了,经验贴发出来仅作为踩坑教训。如果有情况相似的网友之后通过某种方式解决了问题,欢迎评论交流指点。

(古怪的是恍惚记得上周刚配好torch的时候cuda.is_available()还是True来着,今天新装几个包后就不行了。难道是幻觉

参考

1.Pytorch官网 - https://pytorch.org/get-started/previous-versions/

2.Conda安装第三方包 - https://zhuanlan.zhihu.com/p/107487229 (原链接为在base环境中安装,我使用虚拟环境,在 anaconda3/env/{虚拟环境名称}/Lib/site-packages 路径下安装)

Logo

欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。

更多推荐