1. 这套组合到底解决什么问题
先说结论:Anaconda、PyTorch、PyCharm这三样东西凑在一起,就是为了让你在写深度学习代码的时候,不至于因为环境问题浪费半天生命。
很多初学者第一次接触深度学习,拿到一份代码,第一件事就是装依赖。今天缺numpy,明天缺pandas,后天torch和cuda版本对不上,大后天pip把系统Python环境搞崩了。这种痛苦我相信凡是折腾过的人都懂。而Anaconda + PyTorch + PyCharm的组合,本质上就是一套标准化的解决方案:Anaconda管环境,PyTorch管模型训练,PyCharm管代码编辑调试。三者各司其职,配合起来非常顺手。
这篇文章就是一步步带你走完整个配置流程。无论你是刚上手Python的纯新手,还是已经写过一阵脚本、准备转深度学习的老伙计,只要跟着走,都能在半小时内搭好一套干净、隔离、随时可以推倒重来的深度学习开发环境。
顺便说一句,这套流程我在不同电脑上至少走过十几遍,Windows、Linux都试过,踩过很多坑。下面写的每一步,都是我在实际配置中验证过的最稳路径,不是把官方文档抄一遍给你。
2. 装环境前先想清楚的几件事
2.1 为什么需要Anaconda,直接用pip不行吗
很多人会有这个疑问:既然PyTorch官网直接给了pip安装命令,为什么还要多装一个Anaconda?
原因在于Python的包管理有一个绕不开的痛点:依赖冲突。一个项目可能需要numpy 1.x,另一个项目可能需要numpy 2.x,如果都装在系统Python里,迟早会相互踩踏。更麻烦的是pip安装的包会把依赖散落在系统目录中,卸载不干净,时间长了环境就成了一个没人敢动的“屎山”。
Anaconda的核心价值在于它自带conda包管理器,而conda最大的杀手锏就是虚拟环境。你可以随时创建出一个独立的小房间,里面装上指定版本的Python和所有依赖,跟外界完全隔离。想换一套组合就再建一个房间,不想用了直接删除整个房间,系统Python干干净净不受影响。
用生活化类比来说:系统Python就像一套合租房里的公共厨房,谁都能用,但谁都不爱惜。conda虚拟环境则是给每个项目单独租了一间带独立厨卫的小公寓,再乱也是自己家的事,不影响别人,大不了退租重新租一间。
另外Anaconda还内置了conda-forge这个软件源,很多科学计算相关的包(比如numpy、scipy、pandas)在conda源里就是预编译好的二进制包,安装速度快,不会出现“pip下载源码包然后现场编译失败”的经典悲剧。
其实如果你已经装了某个Python发行版,也可以只装Miniconda,它不携带预装的大量科学计算包(启动也要快不少),核心的conda功能一个不少。本篇文章以Anaconda为例,但Miniconda的操作完全一致。
2.2 装哪个版本的PyTorch,CPU还是GPU
PyTorch的安装命令,官网会根据你的操作系统、包管理器、CUDA版本动态生成。这里有个关键决策:你是想用CPU跑,还是用GPU加速训练。
如果只是学习、跑小模型、调代码逻辑,CPU版完全够用。它安装简单、不依赖显卡驱动、不会遇到CUDA各种版本匹配的坑。但真实场景中,训练神经网络动辄几个小时,没有GPU加速几乎没法干活。
如果要用GPU,你的电脑首先需要一张支持CUDA的NVIDIA显卡,然后要确认显卡驱动够新。对于大多数新手,我不建议你自己去手动装CUDA Toolkit,因为PyTorch的pip和conda安装包内部其实已经捆绑了运行时所需的CUDA库,显卡驱动OK的话,直接装对应的PyTorch版本就能用。
关键点在于:你需要知道在哪个镜像源上选哪个版本。这个话题我放在后面的实操章节详细展开,因为这里是绝大多数人配置翻车的地方。
2.3 为什么中间要插一个PyCharm
装了Anaconda和PyTorch之后,你其实已经可以在终端里跑Python写深度学习代码了。但现实是,没人愿意在纯文本编辑器里写一个几百行的训练脚本,然后在终端里盲打命令跑测试。这时候就需要一个像样的代码编辑环境。
PyCharm是目前Python开发体验最好的一体化IDE,没有之一。它能直接识别conda环境,自动加载环境里的解释器和所有第三方包,支持断点调试、变量监视、远程服务器部署、Git集成等一大堆实用功能。调试神经网络的时候,随时在loss那一行打一个断点,看看到底是数据出了问题还是模型结构写错了,这种感觉是写print日志完全无法替代的。
选择PyCharm而不是VSCode的原因同样是“少折腾”。VSCode要自己装Python插件、配置解释器路径、处理launch.json,新手很容易在配置文件里迷路。PyCharm开箱即用,配置一次,以后每次打开项目自动识别环境,非常省心。
所以这套组合的完整逻辑链是:conda负责把依赖环境管好,PyTorch负责深度学习本体,PyCharm负责减少你写代码和调试的摩擦。三者缺一不可,互相补位。
3. 安装Anaconda,顺便把conda基础用法讲明白
3.1 下载安装
打开Anaconda官网下载页面,认准你自己操作系统的版本。这里必须提醒一个容易忽略的细节:下载页面默认展示的是最新Python版本的Anaconda,你不需要纠结Python版本,Anaconda安装包里自带一个Python解释器,后面你建虚拟环境的时候可以指定任意你想要的Python版本,与安装包自带那个无关。
安装的时候有几个勾选项需要注意:
- 安装到哪个盘都行,但路径里不要出现中文和空格,否则后续很多命令行工具解析路径时会出错。
- Windows用户在安装到最后一步时,会看到一个“Add Anaconda to my PATH environment variable”的选项,默认是不勾选的。新手往往纠结要不要勾。我的建议是不要勾选。因为一旦加入系统PATH,conda的Python会和系统里其他Python抢优先级,容易引发一些莫名其妙的问题。以后要用conda,就从Anaconda Prompt这个专门的终端进,安安静静互不打扰。
装完之后,Windows系统里会多出一个Anaconda Prompt的快捷方式。以后所有conda命令都在这个终端里执行,这才是conda的“正确打开方式”。
3.2 先学会这七条conda命令再往下走
整个配置过程里,你会发现来来回回就用到这么几条命令。提前掌握它们,后面就不会手忙脚乱。
# 查看当前已有哪些环境,带*号的是当前激活的环境 conda env list # 创建名为pytorch的虚拟环境,指定Python版本为3.11 conda create -n pytorch python=3.11 # 进入这个环境 conda activate pytorch # 退出当前环境,回到base conda deactivate # 给某个环境安装包 conda install numpy # 删除某个环境,连同里面的所有包一起清除 conda remove -n pytorch --all # 查看当前环境里已经装了哪些包 conda list注意:conda create -n创建环境时指定Python版本,就是要让conda帮你把对应版本的Python解释器也装进这个环境里。这样每个环境就是一套完全隔离的独立Python,这是conda最核心的设计思路。
有个小坑先提前告诉你:conda默认从官方源下载,国内网络环境下经常慢到怀疑人生。后面我会讲怎么换源,这是在实操中非常关键的一步。
4. 创建PyTorch虚拟环境并安装框架
4.1 检查GPU环境并确定目标版本
这一步我们暂停一下,先做个体检。打开Anaconda Prompt,执行下面这个命令:
nvidia-smi如果提示“不是内部或外部命令”,说明你的NVIDIA驱动没装好,或者压根没有N卡,那就老老实实用CPU版。如果正常输出了显卡信息,右上角有一个“CUDA Version: xx.x”,注意这里显示的是驱动支持的最高CUDA版本,不是说你机器里已经装了CUDA Toolkit。
PyTorch官方安装命令会让你自己填一个CUDA版本(比如cu118、cu121、cu124),规则是你选的CUDA版本号必须小于等于驱动支持的版本。如果你显卡驱动很老,最高只有CUDA 11.8,那PyTorch就选cu118;如果驱动是新的,直接选最新可用的CUDA版本就好。
这里必须纠正一个很多教程里没讲清楚的问题:PyTorch安装包里的CUDA不是系统全局的CUDA Toolkit。准确地说,PyTorch的二进制包里捆绑了它运行时需要的CUDA库文件(包括cudart、cudnn等),跟系统里装没装CUDA Toolkit没有直接关系。所以你完全没有必要为了PyTorch去手动安装完整的CUDA Toolkit,除非你还在跑谁谁谁的老代码,需要自己编译CUDA扩展。如果遇到这种需求,就属于后话了。
4.2 换内核源再安装,省下人生两小时
不做换源这一步,你在国内直接用官网的安装命令,大概率会卡在下载环节,一小时下载进度条纹丝不动。conda和pip都支持配置镜像源,我们换上国内镜像源,下载速度可以提升一个数量级。
先说conda换源。在Windows上,编辑你用户目录下的.condarc文件,如果文件不存在就新建一个。填入以下内容:
channels: - defaults show_channel_urls: true default_channels: - https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/main - https://mirrors.sjtug.sjtu.edu.cn/anaconda/pkgs/r custom_channels: conda-forge: https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud pytorch: https://mirrors.sjtug.sjtu.edu.cn/anaconda/cloud其实国内有好几个镜像站,清华、中科大、上交的都行。我常用的是上交的,因为它的pytorch通道同步得比较完整。有人会问:清华源为什么不直接用?我在实际使用中偶尔会遇到清华的pytorch通道不同步的问题,导致conda找不到最新版本,所以现在更常用上交的。如果你没有这个顾虑,用清华也完全没问题。
这里我不打算让你全部依赖conda安装PyTorch。很多老教程会让你用conda install pytorch ... -c pytorch,但实测在默认配置下,conda处理PyTorch的依赖解析经常能卡很久,而且它喜欢把一堆无关包一起升级。我自己更推荐的安装路径是:用conda创建环境,用pip安装PyTorch。
为什么这么做?因为pip的包管理更直接,安装命令就是单纯的下载和解压,不会有conda那种复杂的依赖解析过程。而且PyTorch官方对pip分发包的维护力度一直很及时。唯一要注意的是,接下来在虚拟环境里执行的pip install,一定是环境自己的pip,而不是系统pip。
4.3 正式创建环境,安装PyTorch
打开Anaconda Prompt,依次执行以下命令:
# 创建pytorch环境,使用Python 3.11 conda create -n pytorch python=3.11 # 激活环境 conda activate pytorch # 确保pip是环境自带的版本 python -m pip install --upgrade pip然后确认一下Python版本够新、环境正常:
python --version接下来这一步是整个流程的核心分水岭。先判断一下你的场景,选择对应的安装命令。
场景一:CPU版,也就是没显卡、或者只想先跑通代码。直接运行:
pip install torch torchvision torchaudio这条命令不加任何CUDA参数,默认下载的是CPU版本,包体积小,安装速度快。
场景二:GPU版,显卡驱动体检已通过。有两种方式安装。
方式一,直接用官方指定命令。这种方法依赖配置好的PyTorch专用pip源,国内访问速度不理想。方式二,走国内镜像加速,实际效果要好得多。推荐用下面的命令:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124如果你的显卡驱动较老,把URL末尾的cu124改成cu118等对应版本。显卡驱动很新的话,直接用cu124或者官方网站上标注的最新版本即可。
其实你会发现这个--index-url参数,就是让pip从PyTorch自己的whl仓库里找包,仓库路径带着cu124就表示编译时绑定了CUDA 12.4的运行时库。如果你在清华的pytorch源里找不到对应版本,这里就是最可靠的备选渠道。
安装完成后,立即验证。运行:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"如果输出类似2.4.1+cu124,且torch.cuda.is_available()返回True,恭喜你,GPU环境装好了。返回False就说明驱动或者CUDA版本不匹配,需要回到第4.1节重新检查。
注意:
torchvision和torchaudio分别是对应的视觉模型处理库和音频处理库,它们跟torch有严格的版本配套关系。用同一个installation命令安装,三个包的版本就是配套的,千万别分开手动安装,否则经常出现版本不一致导致import torchvision报错。
4.4 创建环境时的一个实用习惯
所有conda环境号,我建议直接就叫pytorch,简单直接。但如果你同时维护多个项目,比如一个做NLP、一个做CV,可以把环境名起得具体一些,比如nlp、cv,避免时间一长自己都忘了这个环境是干嘛的。
在创建环境时,可以顺手把Jupyter Notebook也装进去,方便后面跑实验:
conda install ipython jupyter notebook这一步可选,不影响主线。
5. 安装PyCharm并与conda环境对接
5.1 版本选择与安装
PyCharm分为Professional(专业版)和Community(社区版)两个版本。社区版免费,但很多功能被阉割,比如远程调试、数据库工具等。对纯Python开发来说,社区版其实够用,但如果你以后有开发Web项目或者需要远程连服务器跑训练的需求,专业版的价值就体现出来了。
这里说说我的建议:安装专业版,因为它提供了完整的项目级环境管理体验。至于激活问题,不在本文讨论范围,反正有条件的用官方正版,还在上学的同学可以申请学生免费授权,很香。
安装过程一路默认即可,不需要改什么配置。唯一需要注意的是,首次启动PyCharm的时候,它会询问你“是否导入之前版本的设置”,新手直接选“不导入”就好,免得把没用的旧配置带进来。
5.2 新建项目时选中conda环境,这是最容易出错的一步
打开PyCharm,新建项目的时候,左侧选“Pure Python”或者你需要的项目类型,然后重点看右侧的Interpreter配置区域。
PyCharm新建项目时一般会给你一个默认选项:使用“New environment using Virtualenv”。这个Virtualenv是PyCharm自己创建的一套虚拟环境,跟我们用conda创建的环境不是一回事,别选它。
正确做法是:选择“Previously configured interpreter”,点击“Add Interpreter”,在弹出的窗口里选择“Conda Environment”,然后选择“Use existing environment”,在下拉列表里选中我们之前创建好的pytorch环境。如果找不到下拉选项,点击旁边的...按钮,手动定位到Anaconda安装目录下的python.exe。
或者更简单粗暴:在已经打开的项目里,进入File → Settings → Project → Python Interpreter,点击齿轮图标,同样选择“Add Interpreter → Conda Environment → Existing environment”,定位到pytorch环境。
这一步配置完成后,你在PyCharm的右下角状态栏就能看到当前解释器的路径,里面应该带着pytorch这个目录名。之后写的所有Python代码,都会在这个环境里执行,import torch也不会报错。
很多人栽在“用conda创建了环境,却又在PyCharm里选了Virtualenv创建的新环境”,导致装好的PyTorch完全找不到。这个问题的根源就是没搞明白Interpreters的大分类。
5.3 再创建一套项目测试环境
为了实践“多环境”理念,我建议你新建项目的时候再走一遍流程,创建一个叫做test-env的虚拟环境,然后在里面装一些常用的小包,比如requests、pandas。然后再用同样的方式把PyCharm的解释器切换到test-env。
这一个操作的意义在于,你亲身经历了一遍“不同项目使用不同环境”的完整流程,以后想加新环境、换环境就是分分钟的事,不用再翻教程。
6. 完整实操流程实录:从零跑到训练代码
光说不练没用,下面是我在一台配置一般的笔记本上,从零开始走完整个流程的实录,每一步的耗时和输出结果都写在里面,你可以对照着看。
6.1 清理旧环境
这台电脑之前装过乱七八糟的Python环境,我决定全部推倒重来。先删除之前的虚拟环境:
conda env remove -n pytorch然后确认环境列表里只剩一个base:
conda env list输出:
# conda environments: # base * C:\Users\someone\anaconda3干净了。
6.2 安装PyTorch GPU版
激活并安装:
conda activate pytorch python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124因为走的PyTorch官网仓库,下载大约3GB的包,由于网速不稳定,一共用了约12分钟。如果直接走官方默认channel大概率会卡死,换到这个URL之后速度快了很多。
安装完成后验证:
python -c "import torch; print(torch.cuda.is_available())"输出True,说明GPU调用成功。
6.3 PyCharm里跑通一个最小神经网路训练
在PyCharm里新建项目DemoProject,解释器选pytorch环境,然后新建脚本train_demo.py,写一个极简的线性回归例子:
import torch import torch.nn as nn # 随机生成一批训练数据 x = torch.linspace(0, 10, 100).reshape(-1, 1) y = x * 2.0 + 1.0 + torch.randn(x.size()) * 0.2 # 定义模型 model = nn.Linear(1, 1) loss_fn = nn.MSELoss() optimizer = torch.optim.SGD(model.parameters(), lr=0.01) # 训练 for epoch in range(100): pred = model(x) loss = loss_fn(pred, y) optimizer.zero_grad() loss.backward() optimizer.step() if (epoch + 1) % 20 == 0: print(f"Epoch {epoch+1}, Loss: {loss.item():.4f}") print("模型权重:", model.weight.item(), model.bias.item())右键点击运行,命令行里能看到loss逐步下降,最终权重逼近2.0,偏置逼近1.0。这说明整条链路是通的:解释器用对了,PyTorch装好了,CUDA也能识别,PyCharm的调试功能也正常工作。
6.4 在诡异情况下切换环境
为了验证多环境隔离,我把解释器切换回test-env,再次运行同一个脚本。预期结果是import torch直接报错,因为test-env里压根没装torch。果不其然,报错信息是ModuleNotFoundError: No module named 'torch'。这就很直观地说明了环境隔离的效果:每个环境装的一套东西彼此无关,互不干扰。
在test-env里执行pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu,装一个CPU版,再运行脚本,程序又能跑起来了。这验证了同一个项目代码可以在不同环境配置下正常运行,只是速度有区别。
7. 常见问题与排查技巧实录
这一节内容是最值钱的。我把这些年配环境踩过的坑集中整理一下,这些报错信息你基本都能在搜索引擎里搜到,但很少有人把根源和解决方案讲得这么透。
7.1 无法将“conda”项识别为cmdlet、函数、脚本文件或可运行程序的名称
这个报错非常经典,几乎每个Windows新手都会遇到。原因是你在PowerShell或者普通的cmd窗口里执行了conda命令,但conda的安装路径不在当前终端的环境变量里。
解决办法就一条:不要用PowerShell,改用Anaconda Prompt。安装Anaconda时,它会自动创建这个专用终端,它是一个bash风格的Shell,conda的路径已经被预加载好了。所有conda命令操作,都在Anaconda Prompt里做;所有Python代码运行,都在PyCharm里做。分清这两个工具,能少踩一半的坑。
如果你非要在PowerShell里用,那就先执行:
conda init powershell然后重启PowerShell。本质上是让conda把它的初始化脚本注入到PowerShell配置里,但这种做法在部分企业电脑上会触发一些奇怪的权限问题,不推荐。
7.2 下载太慢,进度条卡半天
如果你用的是conda官方源或者PyPI官方源,国内网络速度确实堪忧。解决办法就是换源。conda换源直接改.condarc文件;pip换源可以用下面的方式:
pip config set global.index-url https://mirrors.sjtug.sjtu.edu.cn/pypi/web/simple但要特别提醒:如果你需要从PyTorch官网的download.pytorch.org/whl/仓库下载特定CUDA版本的包,就不应该使用pip的全局镜像。因为很多国内镜像源不同步PyTorch的cu版本包,你把它设成默认源之后,再执行那句--index-url就会临时绕开镜像去官网下载。原理上讲,--index-url的优先级高于全局配置,所以如果你想下载GPU版就带这个参数,想走镜像下载其他包就不带参数,两者并不冲突。
7.3 PyTorch装好了,torch.cuda.is_available()还是False
这种情况多见于GPU版本安装成功,但运行期检测不到显卡。排查路径按以下顺序:
第一步,确认安装的是GPU版而不是CPU版:
python -c "import torch; print(torch.__version__)"如果输出末尾没有+cu字样,说明装的是CPU版,重新安装GPU版即可。
第二步,查驱动:
nvidia-smi没有输出就说明驱动没装好。去显卡厂商官网下载对应驱动,装完重启,再跑一次验证。
第三步,确认驱动版本支持PyTorch需要的CUDA版本。如果你驱动只支持到CUDA 11.8,但你装的PyTorch是cu121,它根本起不来。卸载重装对应版本即可。
7.4 PyCharm里import torch报红
报红的原因大概率是解释器没选对,或者环境对不上。查看PyCharm右下角,确认当前的Python解释器路径里带着pytorch这个环境目录。如果不对,按照5.2节的方法切换解释器。
另一种可能性:你用conda activate pytorch在终端里跑通了代码,但PyCharm里的解释器还指向一个旧的环境,这时候PyCharm左下角会出现一个黄色提示条,说“Python packages are out of date”,点击更新即可。如果不更新,代码运行没问题,但编辑器提示波浪线会一直存在,很影响心情。
7.5 conda create环境时卡在Solving environment
这是conda最常见的慢性病。解决思路有两条:一是尽量用python -m pip install安装第三方包,让conda少做依赖解析;二是给conda单独配置一个较新的libmamba求解器(conda 23.10及以上版本自带的默认求解器):
conda config --set solver libmamba实测用了新版求解器之后,创建环境的速度提升非常明显,几分钟的等待变成几秒钟。
7.6 什么时候需要重建环境
当你把环境折腾得一团糟,各种包版本改来改去已经记不清状态的时候,最优雅的做法不是“修复”,而是“重建”。创建环境几秒钟的事情,完全可以推倒重来:
conda deactivate conda remove -n pytorch --all conda create -n pytorch python=3.11 conda activate pytorch把这个习惯刻在脑子里,它会救你很多次。网上很多教程教你如何用conda downgrade某个包,结果推了一堆连锁反应,最后整个环境废了。直接重建才是王道。
8. 深度避坑经验:conda、pip和镜像源的那些事
写到这里,环境已经跑通了。但我还憋着一些独家的实操体会,不吐不快。
第一,conda和pip不要混用不清。一个常见的烂操作是conda install pip之后又用pip install安装一堆包,然后又在conda里管理它们。conda和pip各自维护各自的元数据,混用多了,环境就进入一种“薛定谔的状态”。我的原则是:conda只负责创建环境、管理Python版本、安装一些底层依赖(比如numpy的开源BLAS库),其余所有Python包都用pip安装。这样出现问题的时候,我清楚地知道问题出在哪条链路里。
第二,镜像源不是越多越好。很多人喜欢在.condarc里塞好几个镜像源,以为这样是“多管齐下”。实际恰恰相反,conda在解析依赖时会从所有channel里找包,如果某个channel里某个包版本旧,它就可能给你装上旧版。我的习惯是只用一个主镜像源,不配置多余channel,干净清晰。
第三,装PyTorch时先确认Python版本兼容性。PyTorch对Python版本有支持范围。比如一些老版本的PyTorch根本不给Python 3.12提供预编译包,你硬装就会遇到“找不到满足要求的版本”。解决办法是把环境里的Python版本降下来,比如改成3.11或者3.10。检查方法很简单:
conda create -n pytorch python=3.11至于怎么知道哪个Python版本配哪个PyTorch版本,最准的方法是打开PyTorch官网的安装页,它会根据你选择的Python版本动态生成对应的安装命令。以这个为准。
第四,在虚拟环境里安装包时,养成查看“当前环境”的习惯。在Anaconda Prompt的提示符前面,正常情况下会显示当前所在的环境名。你看到(pytorch) C:\这样的前缀,说明你当前在pytorch环境里。如果前缀是(base),那你安装包就装到base环境去了。新手最容易在这个细节上翻车,搞了一晚上,最后发现包装错了环境。
9. 配置完成后的第一份神经网络代码模板
环境搭好了,你可能一时不知道接下来该干嘛。我给你一个非常实用的最小验证模板,做完这个,你就知道你全部配置是不是真正能干活。
创建一个新文件verify_system.py,把这串代码放进去:
import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader, TensorDataset # 构造一个完全可复现的小数据集 torch.manual_seed(42) x = torch.randn(200, 20) y = (torch.rand(200, 1) > 0.5).float() dataset = TensorDataset(x, y) loader = DataLoader(dataset, batch_size=16, shuffle=True) model = nn.Sequential( nn.Linear(20, 32), nn.ReLU(), nn.Linear(32, 1) ) loss_fn = nn.BCEWithLogitsLoss() optimizer = optim.Adam(model.parameters(), lr=0.01) model.train() for epoch in range(30): total_loss = 0 for batch_x, batch_y in loader: optimizer.zero_grad() logits = model(batch_x) loss = loss_fn(logits, batch_y) loss.backward() optimizer.step() total_loss += loss.item() print(f"epoch {epoch+1}, loss {total_loss / len(loader):.4f}")这个30行的脚本涵盖了数据加载、模型定义、训练循环三个核心模块,跑通它,你的环境就是完完全全可用的深度学习开发环境。
如果你后续需要跑一些真正的开源项目,要注意大部分项目都会提供requirements.txt,里面列了一长串依赖,你只需要在环境里执行:
pip install -r requirements.txt如果项目里有environment.yml,那更是好消息,conda直接一键复刻:
conda env create -f environment.yml这两种方式都是把项目依赖一次性注入当前环境的正确姿势。
10. 最后一个建议:从“单环境”走向“多环境”管理
这套配置流程走完之后,你手里应该已经有了至少两个conda环境。往后每开始一个新项目,不要急着往老环境里塞新包,先花十秒钟想一下:这个项目跟之前的项目依赖差异大不大?如果有明显差异,就新建一个环境,哪怕它才用到两三个包。
有人觉得建环境很麻烦,其实恰恰相反,conda创建环境的速度快得惊人,通常几秒钟就能出来一个干净的Python环境,比你在一团乱麻里挣扎一整天要省事太多了。
我自己的习惯是:每个项目建一个环境,环境名跟项目名保持一致,命名规则就是proj_加项目代号。项目做完了,环境留在那儿;哪天硬盘不够了,conda env remove一键清理,所有依赖记得清清楚楚,从不会有“这环境是谁的,里面到底装了什么”的困惑。
配合PyCharm,每开一个新项目、选中对应解释器,这个项目的一切依赖就自动跟项目绑定。你团队协作的时候,把requirements.txt或者environment.yml留给同事,对方一分钟就能复刻出跟你一样的环境。这种“可复现环境”的好习惯,越早养成,后面越受益。
我个人经历里最深刻的感受是:环境配置这件事,80%的问题都出在“懒得管环境”上。装Anaconda+PyTorch+PyCharm,真正的价值不在于你把这些软件装好的那一刻,而是在于你从此养成了“环境隔离”的意识。以后不管接触多复杂的项目,不管代码依赖多么刁钻,你都能用这套方法论,在五分钟内建立一个干净、可靠、随时能用的开发环境。这才是这套配置流程对你最大的馈赠。