Conda安装pytorch和cuda出现问题的解决记录

pytorch已经安装却显示cuda不可用

问题表现:

pytorch已经安装,代码能够正常运行,但是不能识别到GPU,Cuda显示不可用。

系统:centos

显卡:TeslaV100

问题记录:

目的:为了运行一个仓库neuralhydrology的代码,按照其教程配置环境。

问题原因:

环境由仓库提供的yml文件决定,我认为这是出现问题的部分原因。

复制代码
conda env create -f environment.yml

目前根据配置文件创建环境首先遇到的就是下载慢,pip还超时了,不过很轻松就用换源解决了。最后说。这一步换源操作也是问题原因的一部分。

如何发现:

其实是执行代码的时候,居然走到了cpuonly的分支。

如何解决:

执行以下命令判断你是否和我遇到了同一种情况:

下面这一条如果显示有pytorchcuda说明你是有cuda包的,可以继续往下看,或者显示cudatoolkit也是。否则你就要考虑是不是没装cuda包啊。可以按照后面的方案操作。

复制代码
 conda list | grep cuda

下面这一条用来判断你的pytorch是不是正确,如果显示pytorch后面的build列有cpu。。。那就是和我一样啦。

复制代码
conda list | grep torch

conda list输出包名版本build和channel ,如果build那一列不对,就是安装错版本啦。

我这里就是因为换源默认从配置文件里读取pytorch安装的是cpu版本,所以即使已经安装了cuda也不能识别和使用GPU。

那么如果你和我一样,下一步就这样操作:

这一步判断 你的GPU的驱动最高支持什么版本的CUDA,一般只要你的cuda不超过这个数字就行了。

复制代码
nvidia-smi | grep "CUDA Version"  # 输出应≥11.8

如果你的代码有要求,并且要求的版本不高于你gpu驱动能运行的版本 ,就按照那个版本就好啦,否则你可能需要更新驱动或者更换pytorch和cuda的版本。

然后就要卸载旧的pytorch和cuda包:

复制代码
conda uninstall pytorch torchvision torchaudio libtorch pytorch-cuda

如果提示没有哪些包可卸载,就卸载已有的就行了。

我的话是卸载这两个:

复制代码
conda uninstall pytorch pytorch-cuda

卸载完就要重新安装啦:

复制代码
conda install pytorch  pytorch-cuda=11.8 -c pytorch -c nvidia

-c可以指定从哪个通道下载。11.8是我的cuda版本,你可以选择自己的版本。

最后得到新的pytorch版本:

妙啊,到这就能够运行了。

其他解决?

如果你和我不一样,请尝试排查以下内容:

1,是否安装pytorch和cuda?

2,cuda版本是否超过GPU允许的版本?

3,你是否在不同包管理器下载的cuda和pytorch?

4,pytorch和cuda版本是否匹配?

如果你犯了一些错误或者没找到错误,下面的建议可以参考:

请抛弃当前的环境配置文件,自己手动安装各可能有问题的组件,根据需要一个个添加或者找已经正常运行的朋友借一个环境配置文件(见最后)。

请尝试使用pip安装pytorch和cuda,或者指定通道的情况下用conda安装。

请新建一个环境并尝试用conda或者pip安装cuda和pytorch而不是各自安装部分依赖。

最后请确保你进入了正确的conda环境并设置为你的脚本的执行环境。

一些记录:

cudatoolkit在我的依赖中并不存在,但是你的环境中可能使用这个作为运行环境。乃至于下面这种也是正常的。

一个不谨慎的检查脚本:

复制代码
echo "=== NVIDIA驱动检查 ==="
nvidia-smi || echo "! 驱动未安装"

echo "\n=== CUDA环境检查 ==="
which nvcc &>/dev/null && nvcc --version || echo "! CUDA未安装"

echo "\n=== PyTorch检查 ==="
python -c "import torch; print('\nPyTorch版本:', torch.__version__, '\nCUDA可用:', torch.cuda.is_available())"

把他写入一个sh文件然后bash它就好了。

当然了第二部提示你cuda没安装可能是你和我一样是pytorch-cuda的原因。实在想要一个就安装cuda-nvcc就好了。

conda下载慢或者pip超时的情况

很简单就是进行换源。

conda添加清华源:

复制代码
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch

同时pip也要换源

我这里全局换源的原因是不想手动一个个操作,还是想直接用配置文件生成环境。

复制代码
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

如果有条件,可一个个使用临时换源:conda其实类似的也可以。

复制代码
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name

如何避免再来一次?

保存你的环境依赖吧!

进入你的虚拟环境:

复制代码
conda env export > myenvir.yml

你的环境被保存了,下次只要:

复制代码
conda env create -f myenvir.yml

就搞定了。

相关推荐
小鸡吃米…1 小时前
机器学习 - K - 中心聚类
人工智能·机器学习·聚类
好奇龙猫1 小时前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
沈浩(种子思维作者)2 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
minhuan2 小时前
大模型应用:大模型越大越好?模型参数量与效果的边际效益分析.51
人工智能·大模型参数评估·边际效益分析·大模型参数选择
Cherry的跨界思维2 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS2 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
ASF1231415sd2 小时前
【基于YOLOv10n-CSP-PTB的大豆花朵检测与识别系统详解】
人工智能·yolo·目标跟踪
njsgcs2 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
io_T_T2 小时前
迭代器 iteration、iter 与 多线程 concurrent 交叉实践(详细)
python
水如烟3 小时前
孤能子视角:“意识“的阶段性回顾,“感质“假说
人工智能