2、开发环境搭建:Python环境配置、CUDA与cuDNN安装、PyTorch/TensorFlow框架选择、虚拟环境管理(conda/venv)
好,咱们正式开始动手了。搭建开发环境这件事,说难不难,说简单也真能卡住人好几天。我见过太多同学在群里问「为什么我装好了却跑不起来」,十有八九是环境没配对。这一章,我就带你一步步把坑填平。
2.1 Python环境配置
Python版本怎么选?我个人习惯用3.9或3.10。为什么?因为PyTorch和TensorFlow对这两个版本支持最稳。3.11以上虽然新,但有些库还没跟上,容易出兼容性问题。
我建议直接去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官网下载对应驱动装上就行。
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
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的原因。
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实现一个简单的视频帧插值模型,到时候你就知道今天搭的环境有多重要了。