3. 模型训练环境搭建:Python环境与PyTorch/TensorFlow安装、GPU驱动与CUDA配置、使用Anaconda管理虚拟环境
说实话,环境搭建这件事,看着简单,但坑是真不少。我见过太多人花了一整天装环境,最后发现是CUDA版本没对齐。这节课,我把这些年踩过的坑和总结的经验,一次性给你讲清楚。
3.1 为什么必须用Anaconda?
你想想看,一个项目用PyTorch 1.12,另一个用2.0,第三个还得用TensorFlow 2.8。如果全装在一个Python里,不出三天就乱套了。
Anaconda就是干这个的。它帮你隔离环境,每个项目一套独立的Python版本和包。互不干扰。
核心概念:Anaconda = Python包管理器 + 虚拟环境管理器 + 科学计算库全家桶。说白了,它就是你的开发环境瑞士军刀。
3.2 安装Anaconda
我个人习惯用Miniconda,轻量,只装核心组件。如果你喜欢省事,直接上Anaconda也行,就是体积大了点。
安装步骤:
- 去官网下载对应系统的安装包(Windows/Linux/macOS)
- 一路默认安装,但注意勾选「Add Anaconda to my PATH environment variable」
- 安装完成后,打开终端,输入
conda --version验证
小技巧:Linux下我建议装到 /opt/anaconda3 而不是默认的 ~/anaconda3,这样多用户共享更方便。当然,你一个人用就无所谓了。
3.3 创建和管理虚拟环境
环境管理是Anaconda的核心功能。我一般这样操作:
# 创建一个名为 dl_env 的环境,指定Python版本3.9
conda create -n dl_env python=3.9
# 激活环境
conda activate dl_env
# 查看已有环境
conda env list
# 退出当前环境
conda deactivate
# 删除环境
conda remove -n dl_env --all
为什么要指定Python版本?因为PyTorch和TensorFlow对Python版本有要求。比如PyTorch 2.0要求Python 3.8以上,但3.12有些包还不支持。我一般用3.9或3.10,兼容性最好。
3.4 GPU驱动与CUDA配置
这是最容易出问题的地方。我曾经在客户现场折腾了一下午,最后发现是驱动版本太老,CUDA 11.8根本装不上。
先搞清楚几个概念:
| 组件 | 作用 | 版本关系 |
|---|---|---|
| NVIDIA驱动 | 让操作系统识别GPU | 必须支持目标CUDA版本 |
| CUDA Toolkit | GPU编程的SDK | PyTorch/TF需要对应版本 |
| cuDNN | 深度神经网络加速库 | 必须匹配CUDA版本 |
检查驱动和CUDA版本:
# 查看驱动版本和支持的CUDA版本
nvidia-smi
# 输出示例:
# NVIDIA-SMI 535.129.03
# CUDA Version: 12.2
注意:nvidia-smi 显示的CUDA版本是驱动支持的最高版本,不代表你已经安装了CUDA Toolkit。
3.5 安装CUDA Toolkit和cuDNN
我建议用conda安装,省心:
# 在虚拟环境中安装CUDA Toolkit
conda install -c conda-forge cudatoolkit=11.8
# 安装cuDNN
conda install -c conda-forge cudnn=8.6.0
避坑指南:我曾经直接去NVIDIA官网下载.run文件安装,结果和系统已有的驱动冲突,导致黑屏。后来我学乖了,能用conda就用conda,它自动处理依赖关系。
3.6 安装PyTorch
PyTorch官方提供了非常方便的安装命令生成器。去官网选你的配置,它会给你一条命令。
我常用的安装方式:
# CUDA 11.8 版本
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 或者用conda
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
验证安装:
import torch
print(torch.__version__) # 输出:2.0.1+cu118
print(torch.cuda.is_available()) # 输出:True
print(torch.cuda.device_count()) # 输出:1(你的GPU数量)
如果 torch.cuda.is_available() 返回 False,别慌。检查三件事:驱动版本、CUDA Toolkit版本、PyTorch版本是否匹配。
3.7 安装TensorFlow
TensorFlow的GPU支持需要额外注意。2.10是最后一个原生支持Windows GPU的版本。之后的版本在Windows上只能用WSL2。
# TensorFlow 2.10(Windows推荐)
pip install tensorflow==2.10
# Linux/Mac
pip install tensorflow
# 验证GPU
import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
我的建议:如果你做新项目,优先用PyTorch。TensorFlow在工业部署上仍有优势,但PyTorch的生态和易用性更好。两个都装上也没问题,反正有虚拟环境隔离。
3.8 环境搭建完整流程(我的标准操作)
下面是我每次搭建新项目环境的标准流程,你可以直接照搬:
- 检查硬件:
nvidia-smi确认GPU驱动正常 - 创建环境:
conda create -n myproject python=3.9 - 激活环境:
conda activate myproject - 安装CUDA Toolkit:
conda install -c conda-forge cudatoolkit=11.8 - 安装cuDNN:
conda install -c conda-forge cudnn - 安装PyTorch: 按官网命令安装
- 验证: 运行上面的验证代码
- 安装其他依赖:
pip install numpy pandas matplotlib jupyter
整个过程大概10分钟。如果中间出错了,别硬扛,删掉环境重来。反正 conda remove -n myproject --all 就一秒的事。
3.9 常见问题与解决方案
| 问题 | 原因 | 解决方法 |
|---|---|---|
| torch.cuda.is_available() 返回 False | CUDA版本不匹配或驱动太老 | 更新驱动,或安装对应版本的PyTorch |
| conda安装速度慢 | 默认源在国外 | 换清华源:conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ |
| pip安装报错 | 依赖冲突 | 先升级pip:pip install --upgrade pip |
| import tensorflow 报DLL错误 | 缺少Visual C++运行库 | 安装Visual C++ Redistributable |
3.10 本章知识体系
下面这张图,把整个环境搭建的流程和依赖关系串起来了。建议你保存下来,以后装环境时对照着看。
嗯,到这里,环境搭建这部分就讲完了。你跟着操作一遍,应该不会有大问题。如果卡住了,回头看看上面的表格和流程图,基本都能找到答案。