☰
Anaconda+PyTorch深度学习环境配置全攻略:GPU加速与踩坑避坑指南
2026/10/3 1:31:23 网站建设 项目流程

最近学院那边要在工作站上跑深度学习实验,折腾了好几天U盘启动盘、系统镜像,最后落到最关键的环节:给工作站配一套干净的PyTorch深度学习环境。我选了Anaconda来做环境管理和依赖隔离,配合PyTorch做GPU加速训练,整个过程踩了不少坑,也总结出一套比较顺手的流程,今天完整记录下来,给后面要配环境的同学做个参考。

这篇内容适合谁看?主要是要用PyTorch做深度学习实验、科研和毕设的同学们,尤其是刚接触服务器环境配置、对conda虚拟环境和GPU版本适配不太熟悉的用户。我会从Anaconda的选型理由讲起,把安装配置、清华镜像加速、虚拟环境创建、PyTorch的CPU/GPU版本选择到最终联调验证的完整路径都说清楚,中间穿插我在复旦工作站实测中遇到的坑和排查思路,尽量让大家照着操作就能顺利跑起来。

1. 环境配置前的整体思路与版本选型

1.1 为什么选择Anaconda来做环境管理

初次接触深度学习环境的人可能会问:既然系统里已经装了Python,直接pip install torch不就行了,为什么还要多装一个Anaconda?这里面的关键原因在于环境隔离。

工作站通常不止一个人用,系统自带的Python往往还承担着系统包管理的职责。如果在上面直接装PyTorch,非常容易和系统已有的包产生版本冲突。比如我之前在一台机器上装OpenCV时,不小心把系统里一个关键库的版本给覆盖了,结果导致系统自带的一些工具直接崩掉,最后只能重装系统镜像,浪费了大半天时间。

Anaconda的核心价值,是帮你把不同项目的依赖拆到独立的虚拟环境里。每个环境有自己的Python解释器版本和独立的包目录,互不干扰。做PyTorch项目用3.10,做TensorFlow项目用3.8,做传统图像处理用3.7,切换环境就能切换对应依赖,完全不会冲突。这个隔离能力对于多人在一台工作站上协作的场景尤其重要。

1.2 版本选型的几个关键考量

2024年下半年这个时间点,我推荐直接装Anaconda最新的发行版,然后创建Python 3.10的虚拟环境来跑PyTorch。为什么不直接用Anaconda自带的base环境?因为base环境默认的Python版本往往偏新,而PyTorch和CUDA的适配需要时间,base环境里装PyTorch容易碰上兼容性问题。另外,新建独立的PyTorch环境也方便以后整体删除重建,不影响Anaconda本体和其他环境。

Python版本选择上,3.10是个比较稳的选择,PyTorch官网的默认安装命令也长期支持这个版本。3.11和3.12虽然也能跑,但个别第三方库的预编译包可能还没有跟上,会遇到需要自己编译的尴尬情况。3.8和3.9则偏旧,部分新版本的PyTorch已经开始不再提供支持了。

GPU驱动方面,工作站的显卡驱动通常已经装好,我们需要做的是确认当前驱动支持的CUDA版本上限。在命令行里输入nvidia-smi,会显示当前驱动版本和对应的CUDA Version。比如显示CUDA Version: 12.2,就说明驱动可以支持最高12.2的CUDA运行时。PyTorch只需要装上配套的CUDA运行库即可,不需要单独安装完整的CUDA Toolkit。下载PyTorch时会带上对应的CUDA运行库,这点后面会细说。

2. Anaconda的安装与基础配置细节

2.1 下载Anaconda和安装时的关键选项

Anaconda从官网下载的话,速度可能会不太理想,而且对某些网络环境不太友好。建议直接走清华大学开源软件镜像站,搜索Anaconda,选择对应平台的安装包。以工作站常见的Linux系统为例,下载文件名类似Anaconda3-2024.06-1-Linux-x86_64.sh。这个位置的版本可能不是绝对最新,但胜在稳定,安装后的镜像源配置也更方便走国内加速。

下载完成后,在命令行里执行安装脚本:

bash Anaconda3-2024.06-1-Linux-x86_64.sh

安装过程中有几个必看的提示,很多人就是在这里埋下隐患的。首先是协议确认,一路回车或输入yes即可。然后是指定安装路径,默认是$HOME/anaconda3,如果工作站挂载了容量较大的数据盘,也可以改成数据盘路径。我个人习惯装在家目录下,权限好控制,也避免其他用户误操作。

最后一步是询问是否将Anaconda的bin目录添加到PATH环境变量。这里一定要选择yes,否则之后每次都要手动指定conda的完整路径,非常麻烦。安装完成后,执行source ~/.bashrc使配置生效,然后运行conda --version验证是否安装成功。

2.2 配置国内镜像源与加速下载

Anaconda默认的软件源在国外,实际下载包时速度相当慢。第一次创建PyTorch环境时,光下载Python和依赖包就可能要等十几分钟,而且经常超时失败。这里需要换成清华的conda镜像源。

直接在当前用户的根目录下,用文本编辑器创建或修改.condarc文件,写入以下内容:

channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

这样配置后,conda install走的是清华的镜像,速度会快很多。需要注意的是,PyTorch的conda安装包虽然也在清华镜像里有同步,但PyTorch官方推荐的方式是使用pip来安装深度学习框架包,直接装conda版本偶尔会出现CUDA版本不匹配的问题。所以我的策略是:conda负责管理Python和基础环境,PyTorch用pip安装。这样既享受了conda环境隔离的优点,又避开了conda源里深度学习包可能更新滞后或依赖不够精准的问题。

镜像源配置之后,顺手做两件事。第一件是更新conda本身,conda update -n base conda,把conda升级到较新的版本。第二件是安装完成后重启一次终端,确保所有配置真正生效。很多刚接触的人经常忘记这一步,然后就遇到conda命令找不到的情况。

3. 创建PyTorch虚拟环境与框架安装

3.1 使用conda创建独立的Python虚拟环境

环境创建是环境配置过程中最核心的一步。我的习惯是在创建环境的同时就指定Python版本,避免后续再切换。

conda create -n pytorch python=3.10

这个命令的含义是创建一个名为pytorch的虚拟环境,并且在环境里安装Python 3.10。执行后会显示将要安装的包列表,输入y确认即可。创建完成后,使用以下命令激活进入这个环境:

conda activate pytorch

激活后,命令行的前缀会出现(pytorch),表示当前已经在虚拟环境中。此时在终端输入python --version,应该显示为Python 3.10.x。之后所有涉及PyTorch的操作,都要在这个激活状态下进行,避免装错地方。

如果哪天这个环境搞坏了,不需要重装Anaconda,直接删除重建就行:

conda deactivate conda remove -n pytorch --all

整个环境清理得干干净净,完全不影响Anaconda本体和系统的Python环境。这也是开头说的Anaconda最大的优势之一。

3.2 安装PyTorch时如何选择CUDA版本

PyTorch官方提供了一条自动适配安装命令的工具页面,进入PyTorch官网,选择Linux、Conda或Pip、你需要的CUDA版本,就会生成对应的安装命令。但官网给出的默认选择是CUDA 12.1或12.4,具体还要结合工作站的驱动版本来判断。

先执行nvidia-smi查看驱动信息和驱动的CUDA版本支持范围。如果显示的是CUDA Version: 12.2,那么安装CUDA 12.1版本的PyTorch就没有问题。驱动是向下兼容的,只要PyTorch的CUDA版本不高于驱动版本的上限就可以。

确认之后,用pip安装对应版本的PyTorch。以CUDA 12.1为例,安装命令如下:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

这里核心在于加上了--index-url参数,指定从PyTorch官方的CUDA 12.1源下载。如果不加这个参数,pip默认会从PyPI下载CPU版本的PyTorch,导致GPU完全无法使用,这是一个非常容易踩的坑。

如果网络环境下载官方源速度太慢,也可以通过一些镜像站来加速。但镜像站的PyTorch包版本可能不是最新的,建议优先尝试官方源。实测在国内网络环境下,PyTorch官方源的大文件下载速度偶尔也会飙得很快,多试几次或错峰下载是可以接受的。

3.3 验证PyTorch和CUDA是否正常工作

安装完成后,最重要的步骤就是验证。进入Python环境后,依次执行以下代码:

python -c "import torch; print(torch.__version__)" python -c "import torch; print(torch.cuda.is_available())" python -c "import torch; print(torch.cuda.get_device_name(0))"

第一行能正常输出版本号,说明PyTorch基础安装成功。第二行如果输出True,说明PyTorch正确检测到了CUDA。第三行则会显示当前使用的显卡型号。三行全部通过后,再做一次简单的GPU张量运算测试:

python -c "import torch; x = torch.randn(1000, 1000).cuda(); y = torch.matmul(x, x); print(y.sum().item())"

如果能正常输出一个数字,说明CUDA的算力链路完全打通,可以正式开始用了。

我第一次配环境时,前两步都通过了,GPU的名字也显示正常,但一跑真正的深度学习训练脚本就报CUDA out of memory,排查了半天才发现是另一个进程占用了显存。因此验证环境时,最好找个空闲时段,或者至少执行nvidia-smi确认显存没有被其他人占满。

4. 搭建完整的深度学习开发环境

4.1 配置Jupyter Notebook的kernel

工作站上的日常开发,除了直接用终端跑脚本,更多时候还是基于Jupyter Notebook或VS Code的。默认情况下,在base环境里打开Jupyter Notebook,是看不到刚才创建的pytorch环境里的Python的,因为Jupyter的kernel和conda环境之间还需要一步关联。

进入pytorch环境,安装ipykernel,然后手动注册kernel:

conda activate pytorch conda install ipykernel python -m ipykernel install --user --name pytorch --display-name "PyTorch (Python 3.10)"

这之后在Jupyter Notebook里新建或切换kernel时,就能看到名为PyTorch (Python 3.10)的选项了。选它,Notebook里的代码就跑在含有PyTorch的虚拟环境里。

如果以后删除了这个conda环境,记得也要把对应的kernel移除掉,否则Jupyter里会残留一个无效的内核选项,强迫症看着很难受。移除命令:

jupyter kernelspec remove pytorch

4.2 安装常用训练辅助库

PyTorch本身只提供深度学习模型构建的基础能力,实际跑实验还会有很多辅助库需求。比如数据处理用到的numpy、pandas,画图用的matplotlib,科学计算用的scipy,以及后续可能需要的scikit-learn、tensorboard、tqdm等。这些直接在pytorch环境里用pip或conda装上。

pip install numpy pandas matplotlib scipy scikit-learn tqdm tensorboard

这里的安装原则是:只要PyPI上有预编译的wheel包,优先用pip。因为pip的wheel依赖兼容性通常比conda好,安装速度也快。conda在某些包的处理上会多做依赖解析,偶尔反而会卡在求解环境这个环节,尤其是包版本多了之后,非常烦躁。

如果你之前用过TensorFlow,在同一台机器上还要继续用,有个小技巧是不要在同一个conda环境里同时装TensorFlow和PyTorch。两者的依赖深度绑定比较复杂,免不了互相干扰。更清爽的方案是再单独建一个环境:

conda create -n tensorflow python=3.9 conda activate tensorflow pip install tensorflow

用哪个框架就激活哪个环境,互不耽误,这也是conda环境隔离能力的最大应用场景。

4.3 在PyCharm或VS Code中关联虚拟环境

工作站上用命令行写Python的人不少,但大部分人还是喜欢用IDE。VS Code打开项目后,按Ctrl+Shift+P调出命令面板,输入Python: Select Interpreter,选择路径里带有pytorch的那个解释器即可。PyCharm则是在Settings -> Project -> Python Interpreter里,点击设置,选择Conda Environment,然后指定pytorch环境下的Python解释器路径。

选对解释器是IDE环境配置成功的关键。如果选错成了base环境的Python,虽然PyTorch也可能因为之前不小心装到了base里而能导入,但这个状态的依赖管理是混乱的,时间越久越难受。另外注意,PyCharm关联conda环境时,如果提示找不到conda executable,需要在Conda Executable那边手动指定Anaconda安装目录下bin/conda或Scripts/conda.exe的路径。

5. 实际踩坑与排查实录

5.1 conda命令找不到的两种情况

刚装完Anaconda,经常会遇到重启终端后conda命令提示找不到。造成这个问题的通常是两个原因。第一种是安装时没有选择将Anaconda加入PATH。解决方法是再次执行export PATH="/home/你的用户名/anaconda3/bin:$PATH"并写入~/.bashrc。第二种是shell的配置文件没有生效,直接执行source ~/.bashrc即可。

还有一种是工作站上原本的Python管理方式比较复杂,比如有些服务器用了virtualenv或pyenv,会优先接管PATH环境变量,导致每次conda activate都失败。这种情况建议在~/.bashrc里把Anaconda的初始化逻辑放到最后面,确保conda在shell加载时有优先级。

5.2conda activate在bash/zsh里的适配问题

新装的Anaconda,有时候激活环境会报conda activate pytorch不生效,原因是shell的命令补全和数据绑定没有正确初始化。正常情况下,安装Anaconda时会在~/.bashrc里自动写入一段初始化代码。如果没找到,需要手动执行:

conda init bash

如果你用的是zsh,执行:

conda init zsh

然后重新打开终端即可。工作站上如果切换了shell,务必重新执行对应的conda init命令,这个细节经常被人忽略。

5.3 pip安装的torch不是GPU版本

这个问题是新手遇到最多的。有时候看到torch.cuda.is_available()返回False,第一反应是驱动问题。但更常见的是pip默认从PyPI装到了CPU版。有个方法可以快速验证安装的是不是GPU版:

python -c "import torch; print(torch.version.cuda)"

如果输出是None,那写明装的是CPU版本。解决办法是卸载重装:

pip uninstall torch torchvision torchaudio pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

重装完之后再次检查torch.version.cuda,能看到CUDA版本号就说明GPU版本已经就位。

5.4 常见问题速查表

为了方便大家对照排查,我整理了一份实际使用中最频繁遇到的问题速查表:

现象常见原因解决方案
conda找不到命令未加入PATH或配置未生效执行source ~/.bashrc,检查PATH配置
activate不生效shell初始化被跳过执行conda init bash或conda init zsh
torch.cuda.is_available()为Falsepip装了CPU版PyTorch卸载后用--index-url重装GPU版
pip下载超时官方源网络不稳定换用合适的镜像源,或错峰重试
显存不足报错其他进程占用GPU显存执行nvidia-smi查看占用,等空闲再跑
Jupyter看不到pytorch环境kernel未注册执行python -m ipykernel install --user --name pytorch
系统Python被覆盖不在虚拟环境直接装包养成先conda activate再装包的习惯

5.5 环境配置完成后的第一件事

环境搭好之后,不要急着直接跑项目。我建议先花五分钟跑一个极简的cifar-10分类任务做冒烟测试。这个测试规模适中,既能衡量GPU是否正常参与运算,又不会花太多时间,还能顺便确认数据加载流程没问题。比如用ResNet-18跑几个epoch,观察损失是否正常下降。

如果这个测试能顺利跑完,说明Anaconda、虚拟环境、PyTorch、CUDA、显存调度和IDE关联这条全链路都是通的,后续跑任何深度学习项目时就不用再怀疑基础环境的配置问题了。

6. 针对工作站多人共用环境的几点额外建议

6.1 合理规划磁盘空间与共享环境权限

工作站往往磁盘紧张,而Anaconda环境叠起来之后体积相当可观,一个pytorch环境加PyTorch和常用库轻松超过5GB。因此在创建环境之前最好先确认磁盘剩余空间,df -h看一眼再动手。另外,有些工作站有专门的数据盘,建议把Anaconda安装到数据盘上,或者至少把缓存的包目录重定向到大容量分区:

conda config --set pkgs_dirs /data/conda_pkgs conda config --set envs_dirs /data/conda_envs

这样做的好处是,以后创建的虚拟环境会直接落在数据盘上,不会挤占系统盘空间,同时大家共享一份包缓存,后续创建类似环境时会快很多。

6.2 保存与恢复环境依赖清单

为了复现实验结果和方便其他人快速搭建相同环境,导出当前环境依赖清单是很有必要的。用以下命令把当前环境的所有包及版本号导出到文件:

pip freeze > requirements.txt

换一台新机器或另一个账号时,先创建虚拟环境,再执行:

pip install -r requirements.txt

就能把依赖原样恢复。需要注意pip freeze会把一些非直接依赖的传递依赖也导出来,如果只是想要项目所需的顶层依赖,可以用pipreqs这个工具根据项目的import自动生成更精简的清单。

6.3 关于环境配置的长远思考

配环境这件事,一开始觉得麻烦,但其实是最值得花时间搞清楚的基础设施之一。环境和依赖理顺了,后续的每一次实验复现都会省下大把时间。Anaconda的虚拟环境机制,本质上是为软件开发中的依赖管理问题提供了一个通用解法,学会它之后不仅限于PyTorch,后续任何需要Python环境的项目,这套思路都能直接用。

我个人在实际操作中的体会是,配环境最忌讳的是贪快,每一步都清楚自己在做什么,出问题才知道去哪里排查。建议大家在配置的时候把每条命令都敲一遍、看一遍输出,尤其是我提到的验证环节,千万别跳过。环境配置的顺利完成,是深度学习实验真正开始前的最后一道门槛,跨过去之后,后续的训练、调试、调参都会顺畅许多。希望这篇文章能帮大家少走一些弯路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询