3、Python与深度学习环境搭建:Anaconda安装、TensorFlow/PyTorch安装、CUDA与cuDNN配置、Jupyter Notebook使用

说实话,环境搭建这件事,看着简单,但坑是真不少。我带过不少学生,第一节课就卡在装环境上,一卡就是一整天。我自己当年也踩过不少雷,所以这一章,我尽量把那些容易翻车的地方都给你指出来。

核心要点:深度学习环境搭建,说白了就是三件事——Python包管理、深度学习框架安装、GPU加速配置。这三件事搞定了,后面写代码就顺了。

3.1 Anaconda:Python的“瑞士军刀”

我个人习惯,每开始一个新项目,第一件事就是装Anaconda。为什么?因为它自带conda包管理器,能帮你隔离不同项目的Python环境。你想想看,项目A需要TensorFlow 2.x,项目B需要1.x,如果没有环境隔离,那不得打架打到头破血流?

安装步骤其实很简单:

  1. 去Anaconda官网下载对应系统的安装包(Windows/Linux/macOS)
  2. 一路默认安装,但记得勾选“Add Anaconda to my PATH environment variable”
  3. 安装完成后,打开终端(或Anaconda Prompt),输入 conda --version 验证

我的小建议:别用最新版Anaconda。我遇到过好几次,最新版刚发布时有些包还没适配,装上去各种报错。用前一个稳定版,省心很多。

装好之后,我建议你立刻创建一个专门用于脑电信号分析的虚拟环境:

conda create -n eeg_env python=3.9
conda activate eeg_env

为什么要用Python 3.9?嗯,这里要注意。TensorFlow和PyTorch对Python版本有要求,3.9是目前兼容性最好的版本。3.10以上有些老版本的库装不上,3.8以下又太老了。3.9,刚刚好。

3.2 TensorFlow vs PyTorch:我该怎么选?

这个问题,几乎每个学生都会问我。我的回答是:做脑电信号解码,两个都要会。但如果你非要选一个先学,我建议PyTorch。

为什么?因为PyTorch的调试体验更好。你想想看,写深度学习代码,90%的时间都在debug。PyTorch的动态图机制,让你可以像写普通Python代码一样逐行调试。TensorFlow 2.x虽然也支持了动态图,但总感觉差了那么点意思。

安装命令如下:

# PyTorch(CPU版本)
pip install torch torchvision torchaudio

# TensorFlow(CPU版本)
pip install tensorflow

我曾经踩过的坑:直接 pip install torch 装的是CPU版本。如果你有NVIDIA显卡,一定要去PyTorch官网用那个自动生成的命令安装。官网会根据你的CUDA版本生成对应的安装命令,比自己瞎装靠谱多了。

3.3 CUDA与cuDNN:让GPU跑起来

做脑电信号解码,数据量动不动就是几百兆甚至几个G。用CPU跑?一个模型训练三天三夜。用GPU?几个小时搞定。所以,CUDA和cuDNN的配置,是绕不开的一关。

配置步骤我总结成了一张流程图,你照着走就行:

CUDA & cuDNN 配置流程图 1. 检查NVIDIA显卡 2. 安装CUDA Toolkit 3. 下载cuDNN并配置 4. 验证安装 关键命令 nvidia-smi nvcc --version python -c "import torch; print(torch.cuda.is_available())" ⚠ 版本必须匹配! TensorFlow 2.10+ 需要 CUDA 11.2 + cuDNN 8.1 PyTorch 2.0+ 需要 CUDA 11.7/11.8

具体操作是这样的:

  1. 检查显卡:终端输入 nvidia-smi,看有没有输出。如果没有,说明你没装NVIDIA驱动,或者显卡不是NVIDIA的。
  2. 安装CUDA:去NVIDIA官网下载对应版本的CUDA Toolkit。注意,别装最新的,装TensorFlow/PyTorch官方文档里推荐的版本。
  3. 配置cuDNN:下载cuDNN后,把里面的文件复制到CUDA安装目录下。说白了就是复制粘贴,但路径别搞错了。
  4. 验证:运行 python -c "import torch; print(torch.cuda.is_available())",如果返回 True,恭喜你,成了。

我曾经翻车的一次经历:有一次我装CUDA 11.8,但TensorFlow 2.10只支持到11.2。结果训练时一直报错,查了两天才发现是版本不匹配。所以,装之前一定先去框架官网看兼容性表格,别想当然。

3.4 Jupyter Notebook:交互式编程利器

做脑电信号分析,我90%的时间都在Jupyter Notebook里度过。为什么?因为它太适合探索性分析了。你可以一段一段地跑代码,随时看中间结果,画个图也方便。

安装很简单:

# 在虚拟环境中安装
conda install jupyter notebook

# 或者用pip
pip install jupyter notebook

启动就更简单了:

jupyter notebook

然后浏览器会自动打开一个页面,你就能看到文件目录了。新建一个Notebook,选Python 3内核,就可以开始写代码了。

我的个人习惯:我会在Notebook里先写一个“环境检查”的单元格,把TensorFlow/PyTorch版本、CUDA是否可用、Python版本都打印出来。这样每次开始新项目,第一件事就是跑这个单元格,确保环境没问题。省得写到一半才发现环境不对,那才叫崩溃。

这里给你一个环境检查的代码模板,直接复制到你的Notebook里:

import sys
import tensorflow as tf
import torch

print(f"Python版本: {sys.version}")
print(f"TensorFlow版本: {tf.__version__}")
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA可用: {torch.cuda.is_available()}")
if torch.cuda.is_available():
    print(f"GPU型号: {torch.cuda.get_device_name(0)}")
    print(f"CUDA版本: {torch.version.cuda}")

3.5 环境搭建常见问题与解决方案

我把这些年遇到最多的几个问题整理成了表格,你遇到类似情况可以直接查:

问题现象 可能原因 解决方案
pip install 速度极慢 默认连的是国外源 用国内镜像:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名
torch.cuda.is_available() 返回 False CUDA版本不匹配或没装对 nvidia-smi 检查驱动版本,去PyTorch官网重新生成安装命令
Jupyter Notebook 内核连接不上 虚拟环境没注册到Jupyter 运行 python -m ipykernel install --user --name=eeg_env
ImportError: No module named 'xxx' 包装到了别的环境 检查当前激活的是哪个环境:conda info --envs

最后说一句:环境搭建这件事,第一次搞确实烦。但搞过一次之后,后面就轻车熟路了。而且,你想想看,后面几十章的代码都要跑在这个环境上,现在花点时间把地基打牢,绝对值。


专注资料整理