第1章:环境搭建——工欲善其事,必先利其器

说实话,做自动驾驶这几年,我见过太多同学卡在环境搭建这一步。明明代码逻辑没问题,跑起来却各种报错。说白了,环境没配好,后面全是坑。这一章,我带你一步步把地基打牢。

本章核心目标:从零搭建一套完整的端到端自动驾驶开发环境,包括操作系统、Python生态、GPU加速库和深度学习框架。

1.1 Ubuntu系统安装——为什么选它?

你可能想问:为什么非要用Ubuntu?Windows不行吗?我个人习惯用Ubuntu,原因很简单——自动驾驶领域的主流框架(比如ROS、Apollo、Carla)对Ubuntu支持最好。你想想看,要是装个库都得折腾半天,哪还有心思搞算法?

推荐版本:Ubuntu 20.04 LTS 或 22.04 LTS

  • 20.04:稳定,兼容性好,PyTorch官方支持到CUDA 11.x
  • 22.04:新特性多,但部分老库可能不兼容

我的建议:新手直接上20.04。我在项目中遇到过22.04下某些驱动死活装不上的情况,折腾了两天才发现是内核版本问题。嗯,别给自己找麻烦。

安装步骤(简述):

  1. 下载Ubuntu 20.04 ISO镜像
  2. 制作启动U盘(推荐用Rufus或balenaEtcher)
  3. BIOS设置U盘启动,进入安装界面
  4. 分区建议:/ 分区50GB+,swap分区=内存大小,/home分区留剩余空间
  5. 安装完成后执行 sudo apt update && sudo apt upgrade

注意:双系统用户记得先备份数据!我曾经手滑把Windows分区格了,那叫一个酸爽。

1.2 Python与Conda环境配置

Python版本管理是个大问题。项目A要Python 3.8,项目B要3.10,怎么办?用Conda。它就像一个环境管家,每个项目独立一套Python版本和包,互不干扰。

安装Miniconda(推荐,比Anaconda轻量):

# 下载安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 运行安装
bash Miniconda3-latest-Linux-x86_64.sh

# 一路yes,最后重启终端或 source ~/.bashrc

创建自动驾驶专用环境:

conda create -n autodrive python=3.8
conda activate autodrive

小技巧:我习惯把环境名起得有意义,比如 autodrive、bevfusion,别用 test1、test2——三个月后你自己都分不清。

常用Conda命令速查:

命令 作用
conda list 查看当前环境已安装的包
conda install numpy 安装包
conda remove numpy 卸载包
conda env export > environment.yaml 导出环境配置(分享给队友)

1.3 CUDA与cuDNN安装——GPU加速的关键

端到端自动驾驶离不开深度学习,深度学习离不开GPU。CUDA是NVIDIA的并行计算平台,cuDNN是专门为深度神经网络优化的加速库。说白了,没有它们,你的显卡就是个高级显示器。

第一步:检查显卡驱动

nvidia-smi

如果显示GPU信息,说明驱动已装好。如果没有,执行:

sudo apt install nvidia-driver-470  # 根据显卡型号选择版本

我曾经踩过的坑:驱动版本和CUDA版本不匹配。比如驱动是470,却装了CUDA 12.0,结果报错说找不到设备。记住:nvidia-smi 顶部显示的CUDA Version是驱动支持的最高版本,你装的CUDA不能超过它。

第二步:安装CUDA

推荐用runfile方式安装,灵活可控:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

安装时不要勾选驱动(我们已经装过了),只选CUDA Toolkit。

第三步:配置环境变量

echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

第四步:安装cuDNN

需要去NVIDIA官网注册下载(免费),然后:

# 解压并复制到CUDA目录
tar -xzvf cudnn-linux-x86_64-8.9.0.131_cuda11-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda-11.8/include/
sudo cp cudnn-*-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64/
sudo chmod a+r /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*

验证安装:

nvcc --version  # 查看CUDA版本
cat /usr/local/cuda-11.8/include/cudnn_version.h | grep CUDNN_MAJOR -A 2  # 查看cuDNN版本

1.4 PyTorch框架安装

PyTorch是目前自动驾驶研究的主流框架。BEVFormer、UniAD这些顶会模型,清一色PyTorch。安装其实就一行命令,但版本得选对。

安装命令(CUDA 11.8 + PyTorch 2.0):

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

为什么不用conda安装?我个人习惯用pip。conda的PyTorch版本更新慢,而且有时候依赖解析会卡死。pip直接、快速,出了问题也好排查。

验证PyTorch是否能用GPU:

python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"

如果输出 True 和你的显卡型号,恭喜,环境配好了!

常见问题排查:

  • 报错 "No module named torch" —— 检查是否激活了conda环境
  • torch.cuda.is_available() 返回 False —— CUDA版本不匹配或驱动没装好
  • 显存不足 —— 减小batch size,或者换小模型先测试

知识体系总览

下面这张图,帮你把本章的知识点串起来。环境搭建不是孤立的一步一步,而是一个环环相扣的系统工程。

端到端自动驾驶环境搭建知识体系 Ubuntu 20.04 LTS Miniconda + Python 3.8 NVIDIA驱动 + CUDA 11.8 + cuDNN 8.9 PyTorch 2.0 + torchvision 关键检查点 ✅ nvidia-smi 显示GPU ✅ nvcc --version 显示CUDA ✅ cuDNN版本号正确 ✅ conda环境激活 ✅ torch.cuda.is_available()=True ⚠ 常见错误: • 驱动/CUDA版本不匹配 • 忘记激活conda环境 • pip安装时CUDA版本选错

看到这张图你应该明白了:底层是操作系统,往上依次是Python环境、GPU加速库,最上层才是深度学习框架。每一层都依赖下一层正常工作。所以,别急着装PyTorch,先确认驱动和CUDA没问题。

最后说一句:环境搭建是最枯燥但最重要的一步。我见过太多人花一周配环境,结果发现是驱动版本不对。按照上面的步骤来,每一步验证通过再往下走,基本不会出大问题。嗯,动手试试吧。

可可精品资料库