环境搭建: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. 知识体系总览

下面这张图,帮你理清整个环境搭建的逻辑:

ACT环境搭建知识体系 Conda虚拟环境 CUDA + cuDNN PyTorch Python 3.9 环境隔离 conda activate 版本匹配 nvidia-smi检查 推荐11.8 + 8.7 官网获取命令 pip或conda安装 验证cuda可用 ACT依赖库安装 numpy | opencv | diffusers | transformers

说白了,整个流程就是:先搭好Conda环境,再配好CUDA和cuDNN,然后装PyTorch,最后装ACT的依赖库。每一步都踩稳了,后面跑代码才顺。

最后提醒一句:环境搭建别图快。我见过有人跳过验证步骤,结果训练到一半才发现CUDA没生效,白白浪费几个小时。每一步装完,花10秒验证一下,值。

专注资料整理