深度学习运行环境搭建完全指南

📚 本文档适用于机器学习、深度学习初学者,包含 Windows 和 Linux 系统的完整配置流程

🎯 目标:搭建一个稳定、高效的 AI 开发环境,支持 PyTorch、TensorFlow 等主流框架

📅 最后更新:2025年11月


📋 目录


1. 环境概述

1.1 什么是 AI 运行环境?

AI 运行环境是指能够运行机器学习和深度学习代码的软硬件配置,主要包括:

  • 操作系统:Windows 10/11、Ubuntu 20.04/22.04、macOS
  • 编程语言:Python 3.8-3.11
  • 深度学习框架:PyTorch、TensorFlow、Keras
  • 加速库:CUDA(NVIDIA GPU)、cuDNN
  • 科学计算库:NumPy、SciPy、Pandas
  • 可视化工具:Matplotlib、Seaborn
  • 开发工具:Jupyter Notebook、VS Code、PyCharm

1.2 为什么需要配置专门的环境?

  1. 依赖管理:不同项目需要不同版本的库,避免冲突
  2. 性能优化:GPU 加速可以提升训练速度 10-100 倍
  3. 可重复性:确保代码在不同机器上运行结果一致
  4. 版本兼容:深度学习框架对 Python、CUDA 版本有严格要求

1.3 环境架构图

┌─────────────────────────────────────────────────────────┐
│                     应用层                               │
│  Jupyter Notebook │ VS Code │ PyCharm │ 你的代码       │
├─────────────────────────────────────────────────────────┤
│                   框架层                                 │
│  PyTorch │ TensorFlow │ Scikit-learn │ OpenCV         │
├─────────────────────────────────────────────────────────┤
│                   计算库层                               │
│  NumPy │ SciPy │ Pandas │ Matplotlib │ Pillow         │
├─────────────────────────────────────────────────────────┤
│                   加速层(可选)                          │
│           CUDA Toolkit │ cuDNN │ TensorRT             │
├─────────────────────────────────────────────────────────┤
│                   Python 解释器                          │
│              Python 3.8 / 3.9 / 3.10 / 3.11            │
├─────────────────────────────────────────────────────────┤
│                    操作系统                              │
│         Windows 10/11 │ Ubuntu 20.04/22.04 │ macOS    │
├─────────────────────────────────────────────────────────┤
│                     硬件层                               │
│    CPU: Intel/AMD │ GPU: NVIDIA RTX/GTX │ RAM: 16GB+  │
└─────────────────────────────────────────────────────────┘

2. 硬件要求

2.1 最低配置(入门学习)

适合:学习基础算法、小数据集实验

组件 要求 说明
CPU Intel Core i5 / AMD Ryzen 5 4核心以上
内存 8GB DDR4 推荐 16GB
硬盘 256GB SSD 系统盘,推荐 NVMe
GPU 可选 可以先用 CPU 学习
系统 Windows 10/11 或 Ubuntu 20.04+ 64位

2.2 推荐配置(深度学习开发)

适合:训练中型模型、计算机视觉项目

组件 要求 说明
CPU Intel Core i7 / AMD Ryzen 7 8核心以上
内存 16GB-32GB DDR4 越大越好
硬盘 512GB SSD + 1TB HDD SSD存代码,HDD存数据
GPU NVIDIA RTX 3060 (12GB) 最重要!显存越大越好
系统 Ubuntu 22.04 LTS(推荐) Linux 对 AI 支持更好

2.3 高性能配置(科研/工业)

适合:大模型训练、研究项目

组件 要求 说明
CPU AMD Ryzen 9 / Intel i9 16核心+
内存 64GB+ DDR4/DDR5 大模型训练必须
硬盘 1TB NVMe SSD + 4TB HDD 高速读写
GPU NVIDIA RTX 4090 (24GB) 或多卡并行
系统 Ubuntu 22.04 LTS 服务器版

2.4 GPU 选择指南

NVIDIA GPU 型号对比
型号 显存 适合场景 价格区间
GTX 1650 4GB 入门学习 ¥1000-1500
RTX 3060 12GB 性价比首选 ¥2500-3500
RTX 3070 8GB 中型项目 ¥4000-5000
RTX 3080 10GB/12GB 大型项目 ¥6000-8000
RTX 3090 24GB 科研级 ¥12000+
RTX 4090 24GB 旗舰级 ¥15000+
A100 (数据中心) 40GB/80GB 商业/科研 ¥50000+
重要提示

⚠️ AMD 显卡(RX 6000系列)不推荐用于深度学习!

  • PyTorch、TensorFlow 主要支持 NVIDIA CUDA
  • AMD ROCm 支持有限,坑很多
  • 如果已有 AMD 卡,可以先用 CPU 训练

⚠️ MacBook (M1/M2/M3) 注意事项

  • Apple Silicon 通过 Metal 加速
  • PyTorch 2.0+ 支持 MPS(Metal Performance Shaders)
  • 但生态不如 NVIDIA CUDA 完善

3. 软件准备

3.1 操作系统选择

Windows 10/11(推荐新手)

优点

  • ✅ 界面友好,易上手
  • ✅ 软件生态丰富
  • ✅ 游戏本、办公本都能用

缺点

  • ❌ 部分深度学习工具对 Windows 支持一般
  • ❌ 服务器部署需要迁移到 Linux

适合人群:初学者、个人开发者

Ubuntu 20.04/22.04 LTS(推荐进阶)

优点

  • ✅ AI 工具支持最完善
  • ✅ 性能更好,资源占用低
  • ✅ 服务器环境一致
  • ✅ 开源免费

缺点

  • ❌ 学习曲线陡峭
  • ❌ 驱动安装可能麻烦

适合人群:进阶开发者、科研人员

macOS(适合有 Mac 的用户)

优点

  • ✅ Unix 系统,命令行强大
  • ✅ M1/M2 芯片性能强

缺点

  • ❌ 不支持 NVIDIA GPU
  • ❌ 部分库兼容性差

适合人群:Mac 用户、不需要 NVIDIA GPU 的场景

3.2 双系统安装(推荐方案)

如果你的电脑只有 Windows,可以安装 Ubuntu 双系统:

方案1:物理双系统

  • 优点:性能最好
  • 缺点:需要分区,有风险

方案2:WSL2(Windows Subsystem for Linux)

  • 优点:安装简单,无需重启切换
  • 缺点:性能稍差,GPU 支持需要配置

方案3:虚拟机(VirtualBox/VMware)

  • 优点:最安全
  • 缺点:性能损失大,不推荐

4. Python 环境安装

4.1 为什么选择 Anaconda?

Anaconda 是 Python 的科学计算发行版,包含:

  • Python 解释器
  • 600+ 科学计算包(NumPy、Pandas等)
  • Conda 包管理器
  • Jupyter Notebook

对比纯 Python 的优势

  • ✅ 一键安装,无需配置环境变量
  • ✅ 内置虚拟环境管理
  • ✅ 自动解决依赖冲突
  • ✅ 跨平台一致

4.2 安装 Anaconda(Windows)

步骤1:下载安装包

访问官网:https://www.anaconda.com/download

  • 选择 Windows 64-Bit Installer
  • 文件大小约 500MB
  • 推荐下载 Python 3.10 版本

镜像加速(如果官网慢)

  • 清华镜像:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
  • 选择最新版本,例如:Anaconda3-2024.02-1-Windows-x86_64.exe
步骤2:运行安装程序
  1. 双击安装包
  2. 重要选项
    • ✅ 勾选 “Add Anaconda to PATH”(添加到环境变量)
    • ✅ 勾选 “Register Anaconda as default Python”
  3. 安装路径推荐:C:\Anaconda3D:\Anaconda3(路径不要有中文!)
  4. 等待安装完成(约5-10分钟)
步骤3:验证安装

打开 命令提示符(CMD)PowerShell,输入:

python --version

应该显示:

Python 3.10.x :: Anaconda, Inc.

再输入:

conda --version

应该显示:

conda 23.x.x

4.3 安装 Anaconda(Ubuntu/Linux)

步骤1:下载安装脚本
# 进入下载目录
cd ~/Downloads

# 下载最新版 Anaconda(替换为最新版本号)
wget https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh

# 或使用清华镜像加速
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.02-1-Linux-x86_64.sh
步骤2:运行安装脚本
# 添加执行权限
chmod +x Anaconda3-2024.02-1-Linux-x86_64.sh

# 运行安装
bash Anaconda3-2024.02-1-Linux-x86_64.sh

安装过程中:

  1. Enter 阅读许可协议
  2. 输入 yes 同意
  3. 选择安装路径(默认 ~/anaconda3,直接按 Enter
  4. 重要:询问是否初始化时,输入 yes
步骤3:使配置生效
# 重新加载配置文件
source ~/.bashrc

# 验证安装
conda --version
python --version

4.4 配置 Conda 国内镜像源(加速下载)

Windows 配置

打开 Anaconda Prompt,输入:

# 添加清华镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/

# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

# 验证配置
conda config --show channels
Linux/macOS 配置
# 生成配置文件
conda config --set show_channel_urls yes

# 编辑配置文件
nano ~/.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

保存退出(Ctrl+XYEnter

配置 pip 镜像源
# Windows/Linux/macOS 通用
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

验证:

pip config list

5. CUDA 和 cuDNN 配置(GPU 加速)

5.1 什么是 CUDA 和 cuDNN?

CUDA(Compute Unified Device Architecture)
  • NVIDIA 开发的并行计算平台
  • 让 GPU 可以运行通用计算任务
  • 深度学习框架依赖 CUDA 进行 GPU 加速
cuDNN(CUDA Deep Neural Network library)
  • 针对深度学习优化的 GPU 加速库
  • 包含卷积、池化等神经网络操作的高效实现
  • PyTorch、TensorFlow 必须依赖
版本对应关系(重要!)
PyTorch 版本 CUDA 版本 cuDNN 版本 Python 版本
PyTorch 2.2 11.8 / 12.1 8.9+ 3.8-3.11
PyTorch 2.1 11.8 / 12.1 8.9+ 3.8-3.11
PyTorch 2.0 11.7 / 11.8 8.5+ 3.8-3.11
PyTorch 1.13 11.6 / 11.7 8.3+ 3.7-3.10

TensorFlow 对应关系

TensorFlow 版本 CUDA 版本 cuDNN 版本 Python 版本
TensorFlow 2.15 12.2 8.9 3.9-3.11
TensorFlow 2.14 11.8 8.7 3.9-3.11
TensorFlow 2.13 11.8 8.6 3.8-3.11

5.2 检查 GPU 和驱动

Windows
  1. 右键桌面 → NVIDIA 控制面板系统信息组件
  2. 查看"NVCUDA.DLL"版本,例如:12.2.140 表示支持 CUDA 12.2

或者命令行:

nvidia-smi

输出示例:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 537.13       Driver Version: 537.13       CUDA Version: 12.2    |
|-------------------------------+----------------------+----------------------+
| GPU  Name            TCC/WDDM | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ... WDDM  | 00000000:01:00.0  On |                  N/A |
| 30%   45C    P8    15W / 350W |   1024MiB / 24576MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+

关键信息

  • Driver Version: 537.13:驱动版本
  • CUDA Version: 12.2:支持的最高 CUDA 版本
  • Memory-Usage: 1024MiB / 24576MiB:显存使用情况
Linux
# 查看 GPU 信息
nvidia-smi

# 查看详细信息
lspci | grep -i nvidia

5.3 安装 CUDA Toolkit(Windows)

方案1:通过 Conda 安装(推荐新手)

这种方法最简单,Conda 会自动处理版本兼容:

# 创建新环境时指定 CUDA 版本
conda create -n pytorch_env python=3.10 cudatoolkit=11.8 -y
conda activate pytorch_env
方案2:官方安装包(推荐进阶用户)

步骤1:下载 CUDA Toolkit

访问:https://developer.nvidia.com/cuda-toolkit-archive

选择版本(推荐 CUDA 11.812.1):

  • 操作系统:Windows
  • 架构:x86_64
  • 版本:10/11
  • 安装类型:exe (network) 或 exe (local)

步骤2:运行安装程序

  1. 运行下载的 .exe 文件
  2. 选择"自定义安装"
  3. 取消勾选:
    • Visual Studio Integration(如果不用 VS)
    • NVIDIA GeForce Experience(可选)
  4. 保留勾选:
    • CUDA Toolkit
    • CUDA Samples
    • CUDA Documentation
  5. 安装路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

步骤3:配置环境变量

系统会自动添加,验证:

nvcc --version

应该显示:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Wed_Feb__8_05:53:42_Coordinated_Universal_Time_2023
Cuda compilation tools, release 11.8, V11.8.89

5.4 安装 cuDNN(Windows)

步骤1:下载 cuDNN

访问:https://developer.nvidia.com/cudnn

  • 需要注册 NVIDIA 开发者账号(免费)
  • 选择对应 CUDA 版本的 cuDNN,例如:
    • cuDNN v8.9.7 for CUDA 11.x

步骤2:解压并复制文件

  1. 下载得到 cudnn-windows-x86_64-8.9.7.29_cuda11-archive.zip
  2. 解压后得到三个文件夹:binincludelib
  3. 复制到 CUDA 安装目录:
cuDNN 解压目录                      →  CUDA 目录
├─ bin\cudnn64_8.dll               →  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin\
├─ include\cudnn.h                 →  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include\
└─ lib\x64\cudnn.lib               →  C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\lib\x64\

步骤3:验证安装

# 查看 cuDNN 版本
type "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\include\cudnn_version.h" | findstr CUDNN_MAJOR

5.5 安装 CUDA 和 cuDNN(Ubuntu)

方案1:Conda 安装(推荐)
conda install cudatoolkit=11.8 cudnn -c conda-forge
方案2:官方 .deb 安装

步骤1:下载 CUDA .deb 包

# 以 CUDA 11.8 为例
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb

# 安装仓库
sudo dpkg -i cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb

# 添加密钥
sudo cp /var/cuda-repo-ubuntu2204-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/

# 更新并安装
sudo apt-get update
sudo apt-get install cuda-11-8

步骤2:配置环境变量

编辑 ~/.bashrc

nano ~/.bashrc

添加以下内容到文件末尾:

# CUDA 环境变量
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH

保存并生效:

source ~/.bashrc
nvcc --version

步骤3:安装 cuDNN

# 下载 cuDNN(需要登录 NVIDIA 账号)
# 或使用 apt 安装
sudo apt-get install libcudnn8=8.9.7.29-1+cuda11.8
sudo apt-get install libcudnn8-dev=8.9.7.29-1+cuda11.8

6. 深度学习框架安装

6.1 PyTorch 安装(推荐)

为什么选择 PyTorch?
  • 动态计算图:更灵活,易调试
  • 社区活跃:大量开源项目
  • 学术界主流:CVPR、ICCV 等顶会首选
  • 易上手:Python 风格,代码简洁
安装命令生成器

访问官网:https://pytorch.org/get-started/locally/

选择配置:

  • PyTorch Build: Stable (2.2)
  • Your OS: Windows / Linux / Mac
  • Package: Conda / Pip
  • Language: Python
  • Compute Platform: CUDA 11.8 / CUDA 12.1
Windows + CUDA 11.8 示例
# 创建虚拟环境
conda create -n pytorch_env python=3.10 -y
conda activate pytorch_env

# 安装 PyTorch(CUDA 11.8)
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

或使用 pip(如果 conda 太慢):

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
Ubuntu + CUDA 11.8 示例
conda create -n pytorch_env python=3.10 -y
conda activate pytorch_env
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
验证安装
import torch

# 查看 PyTorch 版本
print(f"PyTorch 版本: {torch.__version__}")

# 检查 CUDA 是否可用
print(f"CUDA 是否可用: {torch.cuda.is_available()}")

# 查看 GPU 名称
if torch.cuda.is_available():
    print(f"GPU 设备: {torch.cuda.get_device_name(0)}")
    print(f"GPU 数量: {torch.cuda.device_count()}")
    print(f"当前 GPU: {torch.cuda.current_device()}")
    
# 简单测试
x = torch.rand(5, 3)
print(f"\nCPU 张量:\n{x}")

if torch.cuda.is_available():
    x_gpu = x.cuda()
    print(f"\nGPU 张量:\n{x_gpu}")

预期输出:

PyTorch 版本: 2.2.0+cu118
CUDA 是否可用: True
GPU 设备: NVIDIA GeForce RTX 3060
GPU 数量: 1
当前 GPU: 0

CPU 张量:
tensor([[0.1234, 0.5678, 0.9012],
        ...])

GPU 张量:
tensor([[0.1234, 0.5678, 0.9012],
        ...], device='cuda:0')

6.2 TensorFlow 安装

为什么选择 TensorFlow?
  • 工业部署强:TensorFlow Serving、TensorFlow Lite
  • 可视化工具:TensorBoard 强大
  • Google 支持:与 Google Cloud 集成好
  • Keras 集成:高层 API 易用
安装步骤
# 创建环境
conda create -n tensorflow_env python=3.10 -y
conda activate tensorflow_env

# 安装 TensorFlow(GPU 版本)
pip install tensorflow[and-cuda]

# 或指定版本
pip install tensorflow==2.15.0
验证安装
import tensorflow as tf

# 查看版本
print(f"TensorFlow 版本: {tf.__version__}")

# 检查 GPU
print(f"GPU 可用: {tf.config.list_physical_devices('GPU')}")

# 简单测试
print(tf.reduce_sum(tf.random.normal([1000, 1000])))

6.3 其他常用框架

Keras(独立安装)
pip install keras
Scikit-learn(机器学习)
conda install scikit-learn
XGBoost(梯度提升)
conda install -c conda-forge xgboost
LightGBM(轻量梯度提升)
conda install -c conda-forge lightgbm

7. 常用工具库安装

7.1 科学计算库

# 数值计算
conda install numpy scipy

# 数据处理
conda install pandas

# 矩阵运算加速
conda install openblas

7.2 数据可视化

# 基础绘图
conda install matplotlib seaborn

# 交互式可视化
conda install plotly

# 进度条
pip install tqdm

7.3 图像处理

# PIL/Pillow
conda install pillow

# OpenCV
conda install -c conda-forge opencv

# 图像增强
pip install albumentations

7.4 自然语言处理

# Transformers(Hugging Face)
pip install transformers

# NLTK
conda install nltk

# spaCy
pip install spacy

7.5 Jupyter 相关

# Jupyter Notebook
conda install jupyter

# JupyterLab(推荐)
conda install jupyterlab

# 插件
pip install jupyterlab-git
pip install ipywidgets

7.6 版本管理和实验跟踪

# TensorBoard
pip install tensorboard

# Weights & Biases
pip install wandb

# MLflow
pip install mlflow

7.7 一键安装脚本

将以下内容保存为 install_all.sh(Linux)或 install_all.bat(Windows):

#!/bin/bash
# AI 环境一键安装脚本

echo "开始安装 AI 环境..."

# 创建环境
conda create -n ai_full python=3.10 -y
conda activate ai_full

# 深度学习框架
echo "安装 PyTorch..."
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y

# 科学计算
echo "安装科学计算库..."
conda install numpy scipy pandas matplotlib seaborn -y

# 机器学习
echo "安装机器学习库..."
conda install scikit-learn xgboost lightgbm -y

# 图像处理
echo "安装图像处理库..."
conda install pillow opencv -y
pip install albumentations

# Jupyter
echo "安装 Jupyter..."
conda install jupyterlab ipywidgets -y

# 其他工具
echo "安装其他工具..."
pip install tqdm tensorboard wandb

echo "安装完成!"
echo "激活环境: conda activate ai_full"

运行:

chmod +x install_all.sh
./install_all.sh

8. IDE 开发环境配置

8.1 Jupyter Notebook/Lab

启动 Jupyter
# 启动 Notebook
jupyter notebook

# 启动 Lab(推荐)
jupyter lab

浏览器会自动打开 http://localhost:8888

配置远程访问
# 生成配置文件
jupyter notebook --generate-config

# 设置密码
jupyter notebook password

# 编辑配置
nano ~/.jupyter/jupyter_notebook_config.py

添加:

c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.port = 8888
c.NotebookApp.open_browser = False
常用快捷键
快捷键 功能
Shift + Enter 运行当前单元格并跳到下一个
Ctrl + Enter 运行当前单元格
A 在上方插入单元格
B 在下方插入单元格
DD 删除当前单元格
M 转为 Markdown 单元格
Y 转为代码单元格

8.2 VS Code

安装

下载:https://code.visualstudio.com/

必装插件
  1. Python (Microsoft) - Python 支持
  2. Pylance - 智能提示
  3. Jupyter - Notebook 支持
  4. Python Docstring Generator - 文档字符串
  5. autoDocstring - 自动生成文档
  6. Code Runner - 快速运行代码
配置 Python 解释器
  1. Ctrl + Shift + P → 输入 “Python: Select Interpreter”
  2. 选择你的 Conda 环境,例如:Python 3.10.x ('pytorch_env')
配置调试

创建 .vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": false
        }
    ]
}

8.3 PyCharm

版本选择
  • Community Edition(免费):适合大多数人
  • Professional Edition(付费):有科学计算工具

下载:https://www.jetbrains.com/pycharm/

配置 Conda 环境
  1. FileSettingsProjectPython Interpreter
  2. 点击齿轮 → Add
  3. 选择 Conda EnvironmentExisting environment
  4. 选择你的环境路径,例如:C:\Anaconda3\envs\pytorch_env\python.exe

9. 虚拟环境管理

9.1 为什么需要虚拟环境?

问题场景

  • 项目A 需要 PyTorch 1.13 + CUDA 11.6
  • 项目B 需要 PyTorch 2.0 + CUDA 11.8
  • 在同一个 Python 环境无法同时满足

解决方案:虚拟环境(每个项目独立的 Python 环境)

9.2 Conda 环境管理

创建环境
# 基础创建
conda create -n myenv python=3.10

# 指定多个包
conda create -n myenv python=3.10 numpy pandas matplotlib

# 从配置文件创建
conda env create -f environment.yml
激活/停用环境
# 激活
conda activate myenv

# 停用
conda deactivate
列出所有环境
conda env list
# 或
conda info --envs

输出示例:

# conda environments:
#
base                  *  C:\Anaconda3
pytorch_env              C:\Anaconda3\envs\pytorch_env
tensorflow_env           C:\Anaconda3\envs\tensorflow_env
删除环境
conda remove -n myenv --all
导出环境配置
# 导出为 YAML
conda env export > environment.yml

# 只导出手动安装的包
conda env export --from-history > environment.yml

environment.yml 示例:

name: pytorch_env
channels:
  - pytorch
  - nvidia
  - defaults
dependencies:
  - python=3.10
  - pytorch=2.2.0
  - torchvision
  - numpy
  - pandas
  - matplotlib
  - jupyter
  - pip:
    - tensorboard
    - wandb
从配置文件创建环境
conda env create -f environment.yml

9.3 项目环境管理最佳实践

方案1:每个项目一个环境
# 项目目录结构
my_project/
├── environment.yml      # Conda 环境配置
├── requirements.txt     # pip 依赖列表
├── data/
├── models/
├── notebooks/
└── src/
    └── train.py
方案2:使用 requirements.txt

生成:

pip freeze > requirements.txt

安装:

pip install -r requirements.txt

requirements.txt 示例:

torch==2.2.0
torchvision==0.17.0
numpy==1.24.3
pandas==2.0.3
matplotlib==3.7.2
jupyter==1.0.0
tensorboard==2.13.0

10. 常见问题解决

10.1 CUDA 相关问题

问题1:RuntimeError: CUDA out of memory

原因:显存不足

解决方法

# 方法1:减小 batch size
batch_size = 16  # 改为 8 或 4

# 方法2:清空显存缓存
import torch
torch.cuda.empty_cache()

# 方法3:使用梯度累积
# 原代码
loss.backward()
optimizer.step()

# 改为
loss = loss / accumulation_steps
loss.backward()
if (i + 1) % accumulation_steps == 0:
    optimizer.step()
    optimizer.zero_grad()

# 方法4:使用混合精度训练
from torch.cuda.amp import autocast, GradScaler
scaler = GradScaler()

with autocast():
    output = model(input)
    loss = criterion(output, target)
    
scaler.scale(loss).backward()
scaler.step(optimizer)
scaler.update()
问题2:torch.cuda.is_available() 返回 False

排查步骤

# 1. 检查 NVIDIA 驱动
nvidia-smi

# 2. 检查 PyTorch CUDA 版本
python -c "import torch; print(torch.version.cuda)"

# 3. 检查安装的 PyTorch 版本
python -c "import torch; print(torch.__version__)"

解决方法

  • 卸载并重新安装匹配的 PyTorch 版本
  • 确保 PyTorch 是 GPU 版本(不是 CPU-only)
# 卸载
pip uninstall torch torchvision torchaudio

# 重新安装 GPU 版本
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

10.2 包管理问题

问题3:conda install 很慢或卡住

解决方法

# 方法1:使用 mamba(conda 的快速替代品)
conda install mamba -c conda-forge
mamba install pytorch torchvision -c pytorch

# 方法2:使用 pip
pip install torch torchvision

# 方法3:清理缓存
conda clean --all
问题4:包版本冲突
# 查看冲突
conda list

# 创建全新环境
conda create -n newenv python=3.10
conda activate newenv
# 逐个安装包,测试兼容性

10.3 环境变量问题

问题5:命令找不到(Windows)
# 临时添加到 PATH
set PATH=%PATH%;C:\Anaconda3\Scripts

# 永久添加:
# 右键"此电脑" → "属性" → "高级系统设置" → "环境变量"
# 在"系统变量"中找到 Path,编辑,添加:
# C:\Anaconda3
# C:\Anaconda3\Scripts
# C:\Anaconda3\Library\bin
问题6:Linux 权限问题
# 给予执行权限
chmod +x script.sh

# 如果需要 sudo
sudo chmod +x /usr/local/bin/your_script

10.4 Jupyter 问题

问题7:Jupyter 找不到虚拟环境
# 安装 ipykernel
conda install ipykernel

# 将环境添加到 Jupyter
python -m ipykernel install --user --name=pytorch_env --display-name "Python (PyTorch)"

# 查看已安装的 kernel
jupyter kernelspec list

# 删除 kernel
jupyter kernelspec uninstall pytorch_env

11. 性能测试与验证

11.1 GPU 性能测试

测试脚本1:简单矩阵运算
import torch
import time

# 设置设备
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(f"使用设备: {device}")

# 测试矩阵乘法
size = 5000
a = torch.randn(size, size, device=device)
b = torch.randn(size, size, device=device)

# 预热
c = torch.matmul(a, b)

# 计时
start = time.time()
for _ in range(10):
    c = torch.matmul(a, b)
torch.cuda.synchronize()  # 等待 GPU 完成
end = time.time()

print(f"矩阵乘法 ({size}x{size}) 10次耗时: {end - start:.3f} 秒")
print(f"平均每次: {(end - start) / 10:.3f} 秒")
测试脚本2:CNN 训练速度
import torch
import torch.nn as nn
import time

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

# 简单 CNN 模型
model = nn.Sequential(
    nn.Conv2d(3, 64, 3, padding=1),
    nn.ReLU(),
    nn.Conv2d(64, 128, 3, padding=1),
    nn.ReLU(),
    nn.AdaptiveAvgPool2d(1),
    nn.Flatten(),
    nn.Linear(128, 10)
).to(device)

# 随机数据
batch_size = 64
inputs = torch.randn(batch_size, 3, 224, 224, device=device)
labels = torch.randint(0, 10, (batch_size,), device=device)

criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters())

# 训练100个 batch
start = time.time()
for i in range(100):
    outputs = model(inputs)
    loss = criterion(outputs, labels)
    loss.backward()
    optimizer.step()
    optimizer.zero_grad()
    
torch.cuda.synchronize()
end = time.time()

print(f"训练 100 个 batch 耗时: {end - start:.2f} 秒")
print(f"吞吐量: {batch_size * 100 / (end - start):.1f} 图像/秒")

11.2 性能基准参考

GPU 型号 矩阵乘法 (5000x5000, 10次) CNN 训练 (100 batch)
RTX 3060 ~0.5 秒 ~3 秒
RTX 3080 ~0.3 秒 ~2 秒
RTX 3090 ~0.2 秒 ~1.5 秒
RTX 4090 ~0.15 秒 ~1 秒
CPU (i7) ~10 秒 ~30 秒

12. 最佳实践建议

12.1 项目组织结构

my_ai_project/
├── README.md                 # 项目说明
├── environment.yml           # Conda 环境
├── requirements.txt          # pip 依赖
├── .gitignore               # Git 忽略文件
├── data/                    # 数据目录
│   ├── raw/                 # 原始数据
│   ├── processed/           # 处理后数据
│   └── external/            # 外部数据
├── notebooks/               # Jupyter notebooks
│   ├── 01_data_exploration.ipynb
│   ├── 02_model_training.ipynb
│   └── 03_evaluation.ipynb
├── src/                     # 源代码
│   ├── __init__.py
│   ├── data/                # 数据处理
│   ├── models/              # 模型定义
│   ├── training/            # 训练脚本
│   └── utils/               # 工具函数
├── configs/                 # 配置文件
│   └── config.yaml
├── checkpoints/             # 模型检查点
├── logs/                    # 训练日志
├── results/                 # 结果输出
└── tests/                   # 单元测试

12.2 代码规范

使用类型提示
from typing import Tuple, Optional
import torch
import torch.nn as nn

def train_model(
    model: nn.Module,
    train_loader: torch.utils.data.DataLoader,
    epochs: int,
    learning_rate: float = 1e-3
) -> Tuple[nn.Module, list]:
    """训练模型
    
    Args:
        model: 神经网络模型
        train_loader: 训练数据加载器
        epochs: 训练轮数
        learning_rate: 学习率
        
    Returns:
        训练好的模型和损失历史
    """
    optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
    loss_history = []
    
    # 训练循环...
    
    return model, loss_history
使用配置文件

configs/config.yaml:

model:
  name: "resnet18"
  num_classes: 10
  pretrained: true

training:
  batch_size: 32
  epochs: 100
  learning_rate: 0.001
  weight_decay: 0.0001

data:
  train_path: "data/processed/train"
  val_path: "data/processed/val"
  num_workers: 4

加载配置:

import yaml

with open('configs/config.yaml', 'r') as f:
    config = yaml.safe_load(f)

batch_size = config['training']['batch_size']

12.3 实验跟踪

使用 TensorBoard
from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter('runs/experiment_1')

for epoch in range(num_epochs):
    # 训练...
    writer.add_scalar('Loss/train', train_loss, epoch)
    writer.add_scalar('Accuracy/train', train_acc, epoch)
    writer.add_scalar('Loss/val', val_loss, epoch)
    
writer.close()

启动 TensorBoard:

tensorboard --logdir=runs

12.4 资源监控

实时监控 GPU
# Linux
watch -n 1 nvidia-smi

# Windows PowerShell
while($true) { nvidia-smi; sleep 1; cls }
Python 监控
import GPUtil

# 获取 GPU 信息
gpus = GPUtil.getGPUs()
for gpu in gpus:
    print(f"GPU {gpu.id}: {gpu.name}")
    print(f"  温度: {gpu.temperature}°C")
    print(f"  显存使用: {gpu.memoryUsed}/{gpu.memoryTotal} MB")
    print(f"  利用率: {gpu.load * 100}%")

12.5 定期备份

# Git 版本控制
git init
git add .
git commit -m "Initial commit"

# 备份模型
cp checkpoints/best_model.pth backup/best_model_$(date +%Y%m%d).pth

📚 附录

A. 常用命令速查表

Conda 命令
命令 说明
conda create -n env_name python=3.10 创建环境
conda activate env_name 激活环境
conda deactivate 停用环境
conda env list 列出所有环境
conda list 列出当前环境的包
conda install package_name 安装包
conda remove package_name 删除包
conda update package_name 更新包
conda env export > env.yml 导出环境
conda env create -f env.yml 导入环境
Pip 命令
命令 说明
pip install package_name 安装包
pip install package_name==1.0.0 安装指定版本
pip uninstall package_name 卸载包
pip list 列出已安装的包
pip freeze > requirements.txt 导出依赖
pip install -r requirements.txt 安装依赖
pip show package_name 查看包信息

B. 有用的资源链接

官方文档
  • PyTorch: https://pytorch.org/docs/
  • TensorFlow: https://www.tensorflow.org/
  • NumPy: https://numpy.org/doc/
  • Pandas: https://pandas.pydata.org/docs/
学习资源
  • PyTorch 教程: https://pytorch.org/tutorials/
  • Fast.ai: https://www.fast.ai/
  • Coursera 深度学习: https://www.coursera.org/specializations/deep-learning
  • 动手学深度学习: https://zh.d2l.ai/
社区
  • PyTorch 论坛: https://discuss.pytorch.org/
  • Stack Overflow: https://stackoverflow.com/questions/tagged/pytorch
  • GitHub: https://github.com/topics/deep-learning
  • Reddit: https://www.reddit.com/r/MachineLearning/

C. 推荐硬件配置

入门配置(¥ 5000-8000)
  • CPU: Intel i5-12400F / AMD Ryzen 5 5600X
  • GPU: NVIDIA RTX 3060 (12GB)
  • RAM: 16GB DDR4
  • SSD: 512GB NVMe
进阶配置(¥ 10000-15000)
  • CPU: Intel i7-13700K / AMD Ryzen 7 5800X3D
  • GPU: NVIDIA RTX 3080 (10GB/12GB)
  • RAM: 32GB DDR4
  • SSD: 1TB NVMe
专业配置(¥ 20000+)
  • CPU: AMD Ryzen 9 7950X
  • GPU: NVIDIA RTX 4090 (24GB)
  • RAM: 64GB DDR5
  • SSD: 2TB NVMe PCIe 4.0

🎓 总结

恭喜你!现在你已经掌握了:

✅ 硬件选择和配置知识
✅ Python 和 Anaconda 安装
✅ CUDA 和 cuDNN GPU 加速配置
✅ PyTorch/TensorFlow 深度学习框架
✅ 虚拟环境管理
✅ 常用工具库安装
✅ IDE 开发环境配置
✅ 常见问题解决方法
✅ 最佳实践规范

下一步建议

  1. 动手实践:用配置好的环境跑一个简单的 MNIST 分类项目
  2. 系统学习:选择一门深度学习课程(推荐 Fast.ai 或 吴恩达 DL)
  3. 参与项目:在 Kaggle 或 GitHub 找感兴趣的项目
  4. 持续更新:关注 PyTorch/TensorFlow 新版本

遇到问题怎么办?

  1. 查看错误信息:仔细阅读报错,90% 问题都能自己解决
  2. 搜索引擎:Google/Bing 搜索错误信息(英文关键词效果更好)
  3. 官方文档:查阅框架的官方文档和 FAQ
  4. 社区求助:在 Stack Overflow、GitHub Issues 提问
  5. 保持耐心:环境配置是每个 AI 工程师必经之路!

🎉祝你天天开心,我将更新更多有意思的内容,欢迎关注!

最后更新:2025年11月
作者:Echo

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐