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也行,就是体积大了点。

安装步骤:

  1. 去官网下载对应系统的安装包(Windows/Linux/macOS)
  2. 一路默认安装,但注意勾选「Add Anaconda to my PATH environment variable」
  3. 安装完成后,打开终端,输入 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 环境搭建完整流程(我的标准操作)

下面是我每次搭建新项目环境的标准流程,你可以直接照搬:

  1. 检查硬件: nvidia-smi 确认GPU驱动正常
  2. 创建环境: conda create -n myproject python=3.9
  3. 激活环境: conda activate myproject
  4. 安装CUDA Toolkit: conda install -c conda-forge cudatoolkit=11.8
  5. 安装cuDNN: conda install -c conda-forge cudnn
  6. 安装PyTorch: 按官网命令安装
  7. 验证: 运行上面的验证代码
  8. 安装其他依赖: 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 本章知识体系

下面这张图,把整个环境搭建的流程和依赖关系串起来了。建议你保存下来,以后装环境时对照着看。

模型训练环境搭建知识体系 模型训练环境搭建流程 NVIDIA GPU + 驱动 CUDA Toolkit + cuDNN Anaconda / Miniconda 虚拟环境 (Python 3.9) PyTorch (torch) TensorFlow (tf) 其他框架 (Paddle等) 验证:torch.cuda.is_available() 提示:每层都依赖下层正确安装,建议按顺序操作,不要跳步

嗯,到这里,环境搭建这部分就讲完了。你跟着操作一遍,应该不会有大问题。如果卡住了,回头看看上面的表格和流程图,基本都能找到答案。