环境搭建:Conda虚拟环境配置、PyTorch安装、CUDA与cuDNN版本匹配、ACT依赖库安装
说实话,环境搭建这事儿,看着简单,但坑是真不少。我见过太多同学代码写得好好的,结果卡在环境配置上,一卡就是半天。咱们今天就把这事儿捋清楚,一步到位。
1. Conda虚拟环境:隔离是王道
我个人习惯,每个项目都建一个独立的虚拟环境。为什么?你想想看,项目A用PyTorch 1.12,项目B用PyTorch 2.0,混在一起迟早出问题。
核心原则:环境隔离,互不干扰。
创建环境很简单,一行命令搞定:
conda create -n act_env python=3.9 -y
这里我选了Python 3.9。为什么不是3.10或3.11?嗯,我在项目中遇到过,ACT的一些依赖库对3.9支持最稳,3.10以上偶尔会报一些奇怪的兼容性问题。
激活环境:
conda activate act_env
每次打开终端,记得先激活环境。我刚开始做项目时经常忘,结果装了一堆包到base环境里,后来想清理都费劲。
小技巧:可以用 conda info --envs 查看所有环境,带星号的是当前激活的。
2. CUDA与cuDNN版本匹配:别瞎装
这是最容易踩坑的地方。我曾经因为CUDA版本不对,折腾了整整一个下午。
先搞清楚你的显卡支持什么版本的CUDA。用这个命令查:
nvidia-smi
看右上角的CUDA Version,那就是你显卡支持的最高版本。比如显示12.1,那你装CUDA 11.8或12.1都行,但不能装13.0(还没出呢)。
我建议的版本组合:
| PyTorch版本 | CUDA版本 | cuDNN版本 | 备注 |
|---|---|---|---|
| 2.0.x | 11.8 | 8.7.0 | 最稳组合,推荐 |
| 2.1.x | 12.1 | 8.9.0 | 新特性多,但兼容性稍差 |
| 1.13.x | 11.7 | 8.5.0 | 老项目用这个 |
警告:千万别装CUDA 12.0,这是个过渡版本,很多库不兼容。我吃过这个亏。
安装CUDA和cuDNN其实不用手动下载。用conda装最省心:
conda install cudatoolkit=11.8 -c nvidia
conda install cudnn=8.7.0 -c nvidia
但说实话,我更推荐直接用PyTorch自带的CUDA版本。后面会讲。
3. PyTorch安装:选对渠道
PyTorch安装,核心就一句话:去官网找命令,别自己瞎猜。
打开 PyTorch官网,选你的配置:
- PyTorch Build: Stable
- Your OS: Linux/Mac/Windows
- Package: Conda 或 Pip
- Compute Platform: CUDA 11.8 或 12.1
比如我选CUDA 11.8,命令就是:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
或者用conda:
conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch -c nvidia
我个人习惯用pip。为什么?conda有时候解析依赖太慢,pip快多了。但如果你在Windows上,conda会更稳一些。
装完后验证一下:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
如果输出 True,恭喜你,CUDA和PyTorch配对成功。
注意:如果输出 False,别慌。先检查CUDA版本,再检查驱动。我曾经遇到过驱动太老,明明装了CUDA 11.8,但PyTorch就是认不出来。
4. ACT依赖库安装:一个不漏
ACT项目需要的依赖库不少,但别怕,咱们一个一个来。
核心依赖清单:
- numpy:矩阵运算,必备
- opencv-python:图像处理,ACT里用来看摄像头数据
- matplotlib:画图,调试时很有用
- h5py:读写HDF5文件,ACT的数据集格式
- tqdm:进度条,训练时看着舒服
- einops:张量操作,ACT的代码里大量使用
- diffusers:扩散模型相关,ACT的核心组件
- transformers:Hugging Face的库,ACT用到了里面的模型
安装命令:
pip install numpy opencv-python matplotlib h5py tqdm einops diffusers transformers
这里有个坑。diffusers和transformers的版本要匹配。我建议:
pip install diffusers==0.21.0 transformers==4.36.0
为什么指定版本?因为ACT的代码是基于特定版本写的。新版diffusers改了API,直接装最新版会报错。嗯,这个坑我踩过。
避坑指南:我曾经装完所有依赖,一跑代码就报 ModuleNotFoundError: No module named 'einops'。查了半天,原来是pip install的时候网络断了,einops没装全。所以装完后最好用 pip list 检查一遍。
5. 一键安装脚本:省心省力
为了以后方便,我写了个安装脚本。你直接复制粘贴就行:
#!/bin/bash
# ACT环境一键安装脚本
# 1. 创建环境
conda create -n act_env python=3.9 -y
conda activate act_env
# 2. 安装PyTorch(CUDA 11.8版本)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 3. 安装ACT依赖
pip install numpy opencv-python matplotlib h5py tqdm einops
pip install diffusers==0.21.0 transformers==4.36.0
# 4. 验证
python -c "import torch; print('PyTorch:', torch.__version__); print('CUDA:', torch.cuda.is_available())"
echo "环境搭建完成!"
保存为 setup_act.sh,然后运行:
bash setup_act.sh
搞定。以后换机器,直接跑这个脚本,省得一个个装。
6. 知识体系总览
下面这张图,帮你理清整个环境搭建的逻辑:
说白了,整个流程就是:先搭好Conda环境,再配好CUDA和cuDNN,然后装PyTorch,最后装ACT的依赖库。每一步都踩稳了,后面跑代码才顺。
最后提醒一句:环境搭建别图快。我见过有人跳过验证步骤,结果训练到一半才发现CUDA没生效,白白浪费几个小时。每一步装完,花10秒验证一下,值。