Anaconda与PyTorch:从零搭建Windows深度学习环境

📅 发布时间:2026/9/2 3:55:48
Anaconda与PyTorch:从零搭建Windows深度学习环境 先直接给结论这篇内容围绕“深度学习环境”“Anaconda”“PyTorch”和编辑器选择来展开目标是在一台普通 Windows 电脑上从零装出一套能跑深度学习代码的环境。它适合两类人第一次接触深度学习、还分不清环境、依赖、虚拟环境是什么的初学者以及曾经照着教程装到一半报错最后被迫重装系统的同学。最值得关注的点不是工具本身而是环境搭建的顺序和判断标准——你知道下一步该点什么、装完该验证什么、报错该看哪里就比大多数人强了。我见过很多新手卡住的情况仔细复盘之后基本都是同一个原因环境没装好但不知道问题出在哪。装完 Anaconda 就着急跑 PyTorch结果 import torch 报错GPU 版本装了一下午最后发现显卡驱动太老编辑器里选了错误解释器代码明明写对了却一直找不到库。这些不是模型或代码的问题而是环境链条没有打通。下面按我自己实测后觉得最稳的顺序拆一遍。1. 先拆清楚环境到底由哪几部分组成1.1 深度学习环境不是一个软件而是一条链路很多人以为装一个 Anaconda 就等于有环境了这是常见误区。深度学习环境至少包含四样东西Python 解释器负责执行 .py 文件。包管理器负责安装、卸载、升级第三方库Anaconda 里的 conda 和 Python 自带的 pip 都属于这一类。深度学习框架比如 PyTorch它让你的代码能够调用神经网络、自动求导、GPU 加速等能力。编辑器或交互环境比如 Jupyter、VS Code、PyCharm负责写代码、跑代码、看结果。这四部分不是割裂的。Python 是地基conda 管理地基上的装修材料PyTorch 是房子里的核心电器编辑器是你操作房间的控制面板。任何一环对不上都会出现“代码在别人电脑能跑在自己电脑报错”的情况。1.2 为什么推荐 Anaconda 而不是裸 Python新手最容易踩的坑是直接从 python.org 下载 Python然后开始用 pip 装包。这个问题不是不能用而是 Python 环境一旦被装乱清理成本很高。Anaconda 自带一个 Python 解释器还自带 conda 工具。conda 最大的优势是能创建多个互相隔离的虚拟环境。比如你有一个项目需要 PyTorch 2.0另一个项目需要 PyTorch 1.8两个项目的依赖有冲突那就各自建一个环境互不影响。这是深度学习开发里非常实用的能力。对零基础的用户来说Anaconda 还自带 Jupyter、Spyder 等常用工具安装后可以少配很多依赖。所以我的建议是不要单独装 Python直接装 Anaconda。1.3 PyTorch 先想清楚 CPU 还是 GPUPyTorch 有两个版本方向一个是 CPU 版一个是 GPU 版。CPU 版安装最简单对硬件没有要求普通笔记本都能装。适合做学习、调试、跑小型网络。缺点是训练速度慢稍微大一点的模型或者数据集就会很吃力。GPU 版需要 NVIDIA 显卡和对应驱动另外还需要安装和匹配 CUDA、cuDNN 这部分底层依赖。安装门槛更高但训练速度通常比 CPU 快很多。从学习方法论来说我建议如果只是入门电脑里也没有 N 卡直接装 CPU 版先把流程跑通。如果确定要长期做深度学习或者已有 N 卡那就一次到位装 GPU 版省得以后重装。1.4 编辑器怎么选编辑器不是深度学习环境的核心但选错了会带来大量无效折腾。比较常见的组合有三种Jupyter Notebook / JupyterLab适合边写边看结果教学和探索比较方便。VS Code轻量插件丰富写代码和跑终端都很顺手。PyCharm专业 IDE调试功能强适合做完整项目和长期开发。对零基础用户我更推荐先装 Anaconda 自带的 Jupyter之后再用 VS Code 或 PyCharm。先别急着追求“最强编辑器”能稳定运行、能切换解释器就够用。2. 安装前的准备先把版本关系理清楚2.1 确认系统类型和位数安装深度学习环境之前先确认几件事操作系统是 Windows、macOS 还是 Linux。系统位数是不是 64 位。现在基本所有新电脑都是 64 位但如果是很老的机器要用 32 位适配会麻烦很多。磁盘剩余空间够不够Anaconda 安装完大约会占用几 GB 空间PyTorch 装完也会再占用不少。电脑有没有独立显卡显卡是 NVIDIA 还是 AMD。PyTorch 对 NVIDIA GPU 支持最成熟。AMD 显卡在部分 Linux 环境下也能用但在 Windows 下门槛更高。如果电脑没有 NVIDIA 显卡直接走 CPU 版路线。2.2 决定 Python 版本Anaconda 安装包本身自带一个 Python 版本。安装过程中一般不需要手动指定。安装之后创建虚拟环境时可以按需选择 Python 版本比如python3.9或python3.10。这里有一个原则不要为了追求新而选太新的 Python也不要因为教程里写了某个版本就死抠。最好以 PyTorch 官网当前支持情况为准。官网没有明确支持某个最新 Python 版本时建议用稍早的稳定版本兼容性问题更少。2.3 先访问官网再决定安装命令很多安装失败都是因为命令记错了。PyTorch 官网会提供一个命令生成器选择操作系统、包管理器、CUDA 版本它会自动生成对应的安装命令。实际操作中先打开 Anaconda 官网下载安装包再打开 PyTorch 官网查看安装命令同时准备好终端。这三个页面都确认之后再一步一步执行。不要凭记忆敲命令尤其是带有 CUDA 后缀的安装命令。2.4 网络慢和下载失败的处理思路Anaconda 安装包比较大PyTorch 的包也很大国内网络环境下载时可能很慢甚至中断。遇到这种情况不需要急着换工具可以按顺序排查看是不是下载源太慢。Anaconda 可以配置国内镜像源比如清华镜像。看是不是命令行下载时网络抖动。可以重试几次或者用 conda 自带的重试参数。看是不是本地磁盘空间不足。看是不是杀毒软件或安全策略拦截了下载过程。这里要注意一点conda 换镜像源时别随便抄一段命令就执行要看自己用的操作系统和 conda 版本。现在官方源偶尔会出现 404、unavailableinvalidchannel 这类错误多数是源地址写错或者源配置残留导致的。遇到这种情况先查看 .condarc 配置把无效地址清掉再回到默认源。3. 安装 Anaconda从下载到验证3.1 Anaconda 下载和安装Anaconda 官网地址是 https://www.anaconda.com/download 进入后选择对应操作系统的安装包。Windows 用户选择 64-Bit Graphical InstallermacOS 和 Linux 用户分别选择对应版本。安装时需要注意几个细节。第一安装路径里尽量不要出现中文和空格。比如 D:\Anaconda3 这样的路径会更稳妥。有的教程说可以装 C 盘但 C 盘空间紧张时后续安装深度学习包会很被动。第二安装过程中会提示是否将 Anaconda 添加到 PATH 环境变量。不同版本提示各不相同有的安装器默认不勾选。如果你不熟悉环境变量我的建议是先勾选方便在命令行直接使用 conda如果安装时没有勾选之后可以用 Anaconda Prompt 进入 conda 环境不一定要手动改 PATH。第三安装完先重启一次终端不要安装完立刻继续跑命令。系统环境变量重新加载后conda 命令才能被正确识别。3.2 验证 conda 是否可用安装完成之后打开 Windows PowerShell、命令提示符或者 Anaconda Prompt输入conda --version如果出现 conda 版本号说明安装成功。如果提示“conda 不是内部或外部命令”先确认是否通过 Anaconda Prompt 打开。是否能找到 Anaconda 安装目录。安装时是否勾选了添加 PATH。推荐先使用 Anaconda Prompt。这个专用终端会自动加载 Anaconda 环境变量能避开很多初学者容易卡住的 PATH 问题。3.3 更新 conda 和必要工具刚装完的 Anaconda 自带的 conda 版本可能不是最新的。不一定要马上更新但如果你后面安装包时提示 conda 版本过旧可以先更新conda update conda更新过程可能会比较慢因为它要处理一些基础元数据。更新不成功时不要反复强行执行先看网络和源配置。如果只是日常安装包旧一点的 conda 一般也够用。4. 创建虚拟环境并安装 PyTorch4.1 为什么不直接装在 base 环境Anaconda 默认有一个 base 环境很多新手图省事直接conda install pytorch把所有包都装到 base 里。短期没问题长期很麻烦。因为 base 往往承担了 Anaconda 自身的依赖管理如果再塞入不同项目的框架很容易出现依赖冲突。比如某个库升级后要求 Python 版本不能低于 3.10但另一个库只能跑在 3.9 上这时候就进退两难。更好的做法是给深度学习项目单独建一个环境。举例conda create -n pytorch_env python3.10这条命令创建了一个名为 pytorch_env 的虚拟环境并指定 Python 版本为 3.10。创建成功后激活环境conda activate pytorch_env之后所有 PyTorch 相关安装都在这条环境里完成。4.2 安装 PyTorch 的两种方式先说明一切以 PyTorch 官网生成的命令为准。下面给出的命令是典型结构不代表所有环境都适用。CPU 版安装命令通常是conda install pytorch torchvision torchaudio cpuonlyGPU 版安装命令通常带有 cuda 版本标识比如conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia我建议第一次安装时直接到 PyTorch 官网选择对应配置复制生成的命令来执行这样最不容易错。如果官网推荐使用 pip 安装也可以切换到 pippip install torch torchvision torchaudiopip 和 conda 都能装 PyTorch但混用时要注意依赖一致性。最常见的问题是conda 环境里已经有了某个包再用 pip 装同一包的不同版本结果版本被覆盖导致后续 import 出现奇怪错误。我的原则是一个环境里主要以 conda 装包如果某个包只在 PyPI 有再用 pip 补装并记录好版本。4.3 如何验证 PyTorch 安装成功环境激活状态下在命令行输入 python进入交互式环境然后执行import torch print(torch.__version__)如果能输出版本号说明 PyTorch 已经装好。如果报错优先看这几项当前环境是否激活。安装命令是否包含当前环境的包源。Python 版本是否和 PyTorch 要求的版本匹配。这一步是最基本的验证。只有 import torch 成功后续才能继续跑模型。4.4 检查 GPU 是否可用如果装的是 GPU 版接着执行print(torch.cuda.is_available())返回 True说明 PyTorch 能调用 NVIDIA GPU。返回 False则可能是显卡驱动太旧。安装的 PyTorch CUDA 版本和驱动支持的 CUDA 版本不匹配。没有 NVIDIA 显卡。PyTorch 安装成了 CPU 版。这里要注意驱动版本和 PyTorch 自带的 CUDA 运行时不完全是一回事。PyTorch 的安装包通常会带上它需要的 CUDA 运行库但显卡驱动必须支持对应的 CUDA 版本。驱动太旧时即使 torch 显示版本正常cuda.is_available() 也可能返回 False。先查看驱动信息可以打开 NVIDIA 控制面板或者用命令行查看显卡驱动版本然后对照显卡驱动和 CUDA 版本的兼容关系。不过不用死记版本号只要驱动足够新一般都能兼容较新的 PyTorch。4.5 没有 NVIDIA GPU 怎么办没有 N 卡或者显存不够就把 PyTorch 当作 CPU 版使用。训练速度会慢但学习过程不受影响。CPU 版也需要注意一点不要拿特别大的模型和数据集直接跑。一个只有几千张图的分类任务CPU 版还能勉强应对动辄几十万样本的训练任务CPU 版就非常吃力。不是不能跑而是时间成本明显上升。对于低配机器我的建议是用小型网络比如减少卷积层数量、降低输入尺寸。用小批量比如 batch_size 从 32 降到 8 或 4。先用少量样本验证代码能跑再决定是否扩大规模。记录每次迭代的单次耗时以便估算整体训练时长。5. 安装和配置编辑器5.1 Jupyter先跑通交互式学习Anaconda 安装时一般会自带 Jupyter Notebook 或 JupyterLab。在命令行输入jupyter notebook浏览器会自动打开 Jupyter 界面。如果没有打开可以把终端输出的地址复制到浏览器访问。在 Jupyter 里新建 Python 3 文件输入 import torch能执行成功说明环境链路已经通了。Jupyter 的核心价值是逐格执行适合快速验证、画图、写笔记很多教程代码也是按 Jupyter 格式组织的。5.2 VS Code适合日常开发VS Code 安装后需要安装 Python 扩展。打开一个 .py 文件时VS Code 会提示选择解释器这时候选择 Anaconda 里的 pytorch_env 环境即可。VS Code 还可以打开终端终端会自动进入当前选中的环境这样可以直接在编辑器里执行 conda 命令。如果 VS Code 里 import torch 报错但命令行里不报错大概率是解释器选错了。先点击 VS Code 右下角或状态栏里的 Python 版本重新选择 pytorch_env。5.3 PyCharm适合正式项目PyCharm 的配置方式略有不同。创建新项目时可以指定 base interpreter 为 Anaconda 环境下的 python.exe也可以指定已有的 conda 环境。如果是 PyCharm找到设置里的 Python Interpreter选择 Existing environment然后定位到 pytorch_env 环境对应的 python.exe 路径。很多初学者在 PyCharm 里遇到“ModuleNotFoundError: No module named torch”原因就是项目解释器选成了默认的 Python而不是 conda 环境。这是环境配置里最典型、也最容易忽略的问题。5.4 编辑器选哪一个最合适对零基础的人我给的顺序是先用 Jupyter再用 VS Code等要写完整项目时再切 PyCharm。Jupyter 的好处是实时反馈适合看教程、做实验。VS Code 的好处是轻量写脚本、调试、配置环境都比 Jupyter 更接近真实开发。PyCharm 更适合做工程化项目比如项目里有多个模块、配置文件和启动脚本。不需要三个都装。装两个就够把其中一个用熟比三四个都装但都不熟悉要强得多。6. 第一次完整运行从环境到训练代码6.1 用一个最短代码验证整条链路安装完所有工具之后最难的不是安装而是确认“整条链路真的没问题”。我建议用一个 10 行以内的代码验证。在编辑器里新建脚本输入下面这段示例import torch import torch.nn as nn model nn.Sequential( nn.Linear(4, 8), nn.ReLU(), nn.Linear(8, 1) ) x torch.randn(2, 4) y model(x) print(y.shape) print(torch.__version__) print(cuda available:, torch.cuda.is_available())这段代码做了三件事导入 PyTorch、创建一个小网络、跑一次前向计算。如果输出torch.Size([2, 1])说明 PyTorch 的核心功能正常。6.2 跑一个最简单的神经网络训练只验证 forward 还不够最好再跑一次包含损失函数和反向传播的训练过程。下面是一个完全开源、任何人可以自行运行的经典最小示例import torch import torch.nn as nn # 生成一组简单数据 x torch.linspace(-1, 1, 100).reshape(-1, 1) y x.pow(2) 0.1 * torch.randn(x.size()) model nn.Sequential(nn.Linear(1, 16), nn.ReLU(), nn.Linear(16, 1)) loss_fn nn.MSELoss() optimizer torch.optim.Adam(model.parameters(), lr0.01) for epoch in range(200): pred model(x) loss loss_fn(pred, y) optimizer.zero_grad() loss.backward() optimizer.step() if (epoch 1) % 50 0: print(fepoch {epoch1}, loss: {loss.item():.6f})这段代码不需要真实数据集也不需要任何外部数据文件。如果它能跑完并且 loss 逐渐下降说明几件事PyTorch 的自动求导正常、优化器正常、CPU 或 GPU 计算正常。6.3 怎么判断训练是正常的很多初学者看到 loss 数值就慌。其实判断标准很简单程序没有中途崩溃。每个 epoch 都能正常打印。loss 整体呈现下降趋势。如果使用 GPU在任务管理器里能看到 GPU 占用或显存占用上升。如果 loss 不降反升或者一直保持不变先不要急着换模型。很多情况下是数据没归一化、学习率太大或太小这些属于训练调试问题不是环境问题。6.4 从单条任务到批量任务的习惯环境跑通后很多人的下一步是把真实数据拿进来训练。这时候最忌讳的是“直接把全部数据和全部参数一次性跑起来”。比较稳妥的步骤是先用 100 条样本跑 1 个 epoch确认代码没有语法错误和路径问题。再用全部数据跑 1 个 epoch估算单轮耗时。最后再调 batch size、学习率等参数。这个习惯能帮你把“环境问题”“数据问题”“模型问题”分开排查不会因为一次训练崩溃就没头绪。批处理图像、批量文本这类任务也建议遵循同样的思路。别一上来就开最大并发也别把所有文件一次性塞进内存。7. 高频问题和排查顺序7.1 conda 命令找不到现象在 PowerShell 或命令提示符里输入 conda提示找不到命令。排查顺序打开 Anaconda Prompt再输入 conda --version。如果能用说明是 PATH 没有配置或者当前终端没有重新加载环境变量。检查 Anaconda 安装目录是否存在。如果没有配置 PATH可以手动把 Anaconda 安装目录和 Scripts 目录加入系统环境变量也可以始终使用 Anaconda Prompt。7.2 下载慢、404、unavailableinvalidchannel现象conda install 时长时间卡住或者出现 HTTP 404、unavailableinvalidchannel。这不是某个单一原因导致的问题。首先看源配置可能在 .condarc 里配置了失效的镜像地址。清理或恢复默认源conda config --remove-key channels conda config --show channels然后再尝试安装。如果仍然慢可以配置一个国内镜像源但一定要用当前可用的地址并且不要和官方源混用。下载慢的时候也可以试试把安装方式换成 pip有时速度反而更稳定。这里没有绝对最优方案不同网络环境表现不同。7.3 import torch 报错现象import torch 提示 No module named torch。排查顺序确认当前终端所在环境是否是 pytorch_env。在 Python 交互环境里执行 import sys; print(sys.executable)确认解释器路径。在编辑器里重新选择解释器。如果确认环境正确重新执行 PyTorch 的安装命令。一个非常常见的场景命令行里安装成功但编辑器里 import 不到因为编辑器用的是另一个 Python 环境。这个问题不是 PyTorch 装坏了而是选错了解释器。7.4 torch.cuda.is_available() 返回 False排查顺序确认安装的是 GPU 版而不是 CPU 版。确认电脑有 NVIDIA 显卡并且驱动已安装。查看显卡驱动版本确认支持 PyTorch 所需的 CUDA 版本。检查当前环境里是否混装了多个 PyTorch 版本建议先卸载干净再重装。在 PyTorch 官网上重新生成安装命令对比自己安装的版本是否一致。这里要注意重装之前先清理conda list | grep torch pip list | grep torch把残留的 torch 相关包卸载干净再执行安装能避免很多版本冲突。7.5 CPU 版训练速度极慢CPU 版训练慢是正常的不要一开始就怀疑环境坏了。可以先跑一个小模型统计单轮耗时。如果单轮耗时合理说明环境没问题只是计算资源有限。降低输入分辨率、减小 batch size、减少网络层数都是实际可用的缓解手段。8. 环境搭建之后更该养成的几个习惯8.1 不要所有项目共用同一个环境环境隔离是 Anaconda 最该利用起来的能力。我建议每个正式项目建一个独立环境环境命名用项目缩写比如 dl_study、demo_project。好处是当某个项目依赖被改坏时直接新建一个环境就行不用连累其他项目。尤其是同时使用 PyTorch 和 TensorFlow、或者需要不同 CUDA 版本时环境隔离能省掉大量冲突处理时间。8.2 用配置文件固定依赖版本环境运行一段时间后包版本可能因为升级而改变。为了让项目可复现建议把依赖版本记录下来。conda 环境导出conda env export environment.yml或者导出 pip 依赖pip freeze requirements.txt换电脑、换同事、换服务器时用环境文件就能把依赖一键恢复。这个习惯比“把所有包重装一遍”可靠得多。8.3 什么时候该重装环境环境出问题时每个人都会纠结是修还是重装。我个人的判断标准是如果是单个包的版本问题先尝试修复。如果发现 conda 环境里的依赖已经乱到无法理清比如升级了很多次包、pip 和 conda 混装了大量库推荐直接重建环境。如果只是想验证某个 PyTorch 版本能不能运行新建一个临时环境用完删掉。创建临时环境conda create -n test_torch python3.10 conda activate test_torch删除不需要的环境conda deactivate conda remove -n test_torch --all8.4 新手最终应该记住的判断标准环境搭建这件事真正重要的不是记住每条命令而是掌握判断标准。安装完 Anaconda验证 conda 能否执行。 创建环境验证 conda activate 能否切换。 安装 PyTorch验证 import torch 能否成功。 使用 GPU验证 torch.cuda.is_available() 是否为 True。 编辑器写代码验证解释器是否为当前 conda 环境。 训练开始后验证 loss 是否正常下降。把这几条链路走一遍当系统提示某个环节出问题时你就知道该查哪里了。我踩过不少次坑现在回头看大多数问题都不是机器配置不够而是安装顺序、版本匹配和解释器选择没有做好。配置好环境之后再把心思放到模型和数据上效率会高很多。