1. 项目概述
在Ubuntu系统上快速搭建强化学习环境是许多AI开发者和研究者的刚需。作为一名长期从事机器学习环境配置的工程师,我经常需要为团队新成员或实验项目搭建RL环境。经过多次实践,我总结出一套10分钟快速配置方案,特别适合Ubuntu 20.04/22.04 LTS版本。
这个方案主要解决三个痛点:第一,避免繁琐的依赖项手动安装;第二,确保CUDA与cuDNN版本完美匹配;第三,实现conda虚拟环境与系统环境的隔离。下面我将详细拆解每个步骤的技术原理和实操要点。
2. 基础环境准备
2.1 系统更新与基础依赖
首先执行系统更新和基础工具安装:
sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential cmake git wget unzip这些基础包包含了编译器、构建工具和版本控制工具,是后续所有工作的基石。特别提醒:在云服务器环境下,建议先执行apt update单独命令,确认源可用后再进行升级。
2.2 显卡驱动安装(GPU用户)
对于需要GPU加速的用户,推荐使用官方驱动:
sudo ubuntu-drivers autoinstall sudo reboot安装后通过nvidia-smi验证驱动版本。我建议选择470以上的驱动版本以获得更好的CUDA兼容性。如果遇到驱动冲突,可以先执行sudo apt purge nvidia*彻底清除旧驱动。
3. Conda环境配置
3.1 Miniconda安装
使用轻量化的Miniconda作为Python环境管理器:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda安装完成后需要将conda加入PATH:
echo 'export PATH="$HOME/miniconda/bin:$PATH"' >> ~/.bashrc source ~/.bashrc注意:不要使用root权限安装conda,否则会导致后续包权限问题
3.2 创建专用虚拟环境
为强化学习创建独立环境:
conda create -n rl_env python=3.8 -y conda activate rl_env选择Python 3.8是因为它在兼容性和性能之间取得了良好平衡。实际测试表明,3.8版本对主流RL库的支持最稳定。
4. 核心组件安装
4.1 CUDA Toolkit安装
通过conda直接安装匹配的CUDA版本:
conda install -c conda-forge cudatoolkit=11.3 cudnn=8.2 -y这个组合经过大量项目验证,稳定性最好。安装后设置环境变量:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/' >> ~/.bashrc4.2 深度学习框架安装
安装PyTorch和TensorFlow的GPU版本:
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113 pip install tensorflow-gpu==2.6.0版本选择基于以下考虑:
- PyTorch 1.12 + CUDA 11.3是官方长期支持组合
- TensorFlow 2.6在API稳定性和性能上表现均衡
5. 强化学习库安装
5.1 基础RL库
安装主流强化学习框架:
pip install gym[all]==0.21.0 stable-baselines3==1.6.2 ray[rllib]==1.13.0版本锁定是为了避免新版本可能的API变更。gym[all]包含了常用测试环境,但会安装较多依赖,如果只需要基础功能可以改为gym==0.21.0。
5.2 可选组件
根据需求选择安装:
pip install mujoco-py==2.1.2.14 # 需要先安装MuJoCo本体 pip install pybullet==3.2.5 # 物理引擎6. 环境验证
6.1 基础测试
创建test_rl.py验证环境:
import gym import torch print("PyTorch CUDA可用:", torch.cuda.is_available()) env = gym.make('CartPole-v1') print("Gym环境创建成功")6.2 常见问题排查
遇到问题时可以检查:
- CUDA版本匹配:
nvcc --version与conda list cudatoolkit应一致 - cuDNN测试:执行
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))" - 环境隔离:确认是在正确的conda环境中执行命令
7. 效率优化技巧
7.1 镜像源配置
为conda和pip配置国内镜像加速:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple7.2 环境导出与复用
导出环境配置便于复用:
conda env export > rl_env.yaml pip freeze > requirements.txt恢复环境时使用:
conda env create -f rl_env.yaml pip install -r requirements.txt8. 进阶配置建议
对于需要更高性能的场景:
- 使用Docker容器封装环境,确保跨平台一致性
- 对PyTorch开启MKL-DNN加速:
conda install mkl mkl-include -c intel - 调整CUDA流优先级:
export CUDA_DEVICE_ORDER=PCI_BUS_ID
这套配置方案在AWS g4dn.xlarge实例上测试通过,完整安装时间约8-12分钟。关键是要确保网络通畅,避免依赖下载中断。如果遇到包冲突,建议重建干净环境而非强行修复。