2、开发环境搭建:Python环境配置、CUDA与cuDNN安装、PyTorch/TensorFlow框架选择、虚拟环境管理(conda/venv)

好,咱们正式开始动手了。搭建开发环境这件事,说难不难,说简单也真能卡住人好几天。我见过太多同学在群里问「为什么我装好了却跑不起来」,十有八九是环境没配对。这一章,我就带你一步步把坑填平。

2.1 Python环境配置

Python版本怎么选?我个人习惯用3.9或3.10。为什么?因为PyTorch和TensorFlow对这两个版本支持最稳。3.11以上虽然新,但有些库还没跟上,容易出兼容性问题。

注意:千万别用系统自带的Python!尤其是macOS和Linux用户。系统Python是给系统用的,你乱改版本可能会搞崩系统工具。

我建议直接去python.org下载安装包。Windows用户记得勾选「Add Python to PATH」,这个选项很多人会漏掉。嗯,我当年就吃过这个亏,装完发现命令行里打不出python,折腾了半天。

验证安装很简单,打开终端或命令行:

python --version
pip --version

能看到版本号,说明Python装好了。pip是Python的包管理器,后面装库全靠它。

2.2 CUDA与cuDNN安装

做AIGC视频生成,GPU是必需品。CPU也能跑?能,但慢到你怀疑人生。我试过用CPU跑一个简单的视频帧插值模型,一张图要等十几秒,根本没法用。

CUDA是NVIDIA的并行计算平台,cuDNN是它的深度学习加速库。说白了,CUDA是发动机,cuDNN是涡轮增压器。

2.2.1 检查你的GPU

先看看你的显卡支不支持CUDA。打开终端输入:

nvidia-smi

如果显示GPU信息,比如「NVIDIA GeForce RTX 3060」,那就没问题。如果提示命令找不到,说明你没装NVIDIA驱动。去NVIDIA官网下载对应驱动装上就行。

小技巧:nvidia-smi输出的右上角会显示CUDA版本号,比如CUDA 11.8。这个版本号决定了你能装什么版本的PyTorch。

2.2.2 安装CUDA Toolkit

去NVIDIA官网下载CUDA Toolkit。版本怎么选?我建议看PyTorch官网的兼容性列表。举个例子,PyTorch 2.0支持CUDA 11.7和11.8,那你就装这两个之一。

安装过程很简单,一路默认就行。Linux用户注意,安装时选「runfile」方式,别选deb包,容易出依赖问题。我曾经在Ubuntu上折腾了一下午,最后发现用runfile最省心。

装完验证:

nvcc --version

能看到版本号,说明CUDA装好了。

2.2.3 安装cuDNN

cuDNN需要注册NVIDIA开发者账号才能下载。别嫌麻烦,注册一下很快。下载对应CUDA版本的cuDNN,解压后把文件复制到CUDA安装目录就行。

Windows用户注意,cuDNN的bin目录要加到系统环境变量PATH里。我见过有人复制了文件但忘了配环境变量,结果程序运行时说找不到cudnn64_8.dll。

# Linux/macOS 示例
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include 
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64 
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

2.3 PyTorch/TensorFlow框架选择

这两个框架怎么选?我直接说我的看法:做AIGC视频生成,首选PyTorch。为什么?因为现在主流的视频生成模型,比如Stable Video Diffusion、AnimateDiff、VideoCrafter,全是PyTorch写的。TensorFlow当然也能做,但生态上差了一截。

对比项 PyTorch TensorFlow
调试体验 动态图,print就能看中间结果 静态图,调试相对麻烦
社区生态 AIGC领域绝对主流 工业部署场景更多
学习曲线 更接近Python原生写法 概念较多,上手稍慢
部署能力 TorchScript/TorchServe TF Serving/TFLite,更成熟

我个人建议:如果你刚入门,直接选PyTorch。等后面需要做模型部署了,再学TensorFlow也不迟。你想想看,学一个框架已经够累了,何必两个一起上?

2.3.1 安装PyTorch

去PyTorch官网,选择你的配置(操作系统、CUDA版本),它会生成对应的安装命令。比如:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

注意那个cu118,表示CUDA 11.8版本。如果你没装CUDA,可以装CPU版本,但说实话,做视频生成还是别想了。

验证安装:

import torch
print(torch.__version__)
print(torch.cuda.is_available())  # 应该返回True
重点:torch.cuda.is_available()返回True,才说明GPU能用。如果返回False,检查CUDA版本是否匹配,或者驱动有没有装对。

2.4 虚拟环境管理(conda/venv)

虚拟环境这个东西,说白了就是给你的每个项目一个独立的Python小房间。你在这个房间里装什么库,都不会影响到其他房间。我刚开始做项目时不懂这个,所有库都装全局,结果项目A要PyTorch 1.13,项目B要2.0,两个版本冲突,搞得我焦头烂额。

2.4.1 用venv(Python自带)

venv是Python自带的虚拟环境工具,轻量好用。创建环境:

python -m venv myenv

激活环境:

# Windows
myenv\Scripts\activate

# Linux/macOS
source myenv/bin/activate

激活后,命令行前面会出现(myenv)字样,说明你已经在虚拟环境里了。这时候装的所有库都只在这个环境里生效。

2.4.2 用conda(推荐)

我个人更推荐conda,尤其是做深度学习。为什么?因为conda不仅能管理Python包,还能管理CUDA、cuDNN这些非Python的依赖。你想想看,用venv装CUDA还得手动搞,用conda一条命令搞定。

安装Miniconda(轻量版)或Anaconda(全家桶)。我建议Miniconda就够了,Anaconda预装太多你用不到的库。

创建环境:

conda create -n video_ai python=3.10

激活环境:

conda activate video_ai

在conda环境里装PyTorch,可以直接用conda命令:

conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

看到没?pytorch-cuda=11.8这个参数,conda会自动帮你处理CUDA依赖。这就是我推荐conda的原因。

我的习惯:每个项目建一个独立的conda环境,名字就用项目名。比如做视频生成的项目就叫video_ai,做图像修复的叫image_restore。这样环境之间完全隔离,互不干扰。

2.4.3 环境导出与复现

项目做完了,要分享给同事或部署到服务器,怎么保证环境一致?用导出功能:

# conda
conda env export > environment.yml

# pip
pip freeze > requirements.txt

别人拿到你的environment.yml,直接运行:

conda env create -f environment.yml

环境就一模一样了。我曾经因为没做这一步,导致项目换了一台机器就跑不起来,排查了半天发现是某个库版本不一致。从那以后,我每个项目都必做环境导出。

2.5 验证你的环境

环境搭好了,跑个简单的测试脚本验证一下:

import torch
import torchvision

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

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

# 检查GPU数量
print(f"GPU数量: {torch.cuda.device_count()}")

# 检查GPU名称
if torch.cuda.is_available():
    print(f"GPU名称: {torch.cuda.get_device_name(0)}")

# 简单张量运算测试
x = torch.randn(3, 224, 224).cuda()
print(f"张量运算测试通过,形状: {x.shape}")

如果所有输出都正常,恭喜你,环境搭建成功了!

常见问题:
  • 「CUDA out of memory」——显存不够,减小batch size或换小模型
  • 「No module named 'torch'」——没装PyTorch,或者没激活虚拟环境
  • 「CUDA error: no kernel image is available」——PyTorch版本和CUDA版本不匹配

嗯,环境搭建这部分就到这里。说实话,这一步最磨人,但也是最值得花时间的。环境搭好了,后面写代码、跑模型都会很顺畅。下一章我们开始正式写代码,用PyTorch实现一个简单的视频帧插值模型,到时候你就知道今天搭的环境有多重要了。