2. 环境搭建
说实话,做自动驾驶这几年,我见过太多同学卡在环境搭建这一步。明明代码逻辑没问题,跑起来却各种报错。说白了,环境没配好,后面全是坑。这一章,我带你一步步把地基打牢。
本章核心目标:从零搭建一套完整的端到端自动驾驶开发环境,包括操作系统、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下某些驱动死活装不上的情况,折腾了两天才发现是内核版本问题。嗯,别给自己找麻烦。
安装步骤(简述):
- 下载Ubuntu 20.04 ISO镜像
- 制作启动U盘(推荐用Rufus或balenaEtcher)
- BIOS设置U盘启动,进入安装界面
- 分区建议:/ 分区50GB+,swap分区=内存大小,/home分区留剩余空间
- 安装完成后执行
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,或者换小模型先测试
知识体系总览
下面这张图,帮你把本章的知识点串起来。环境搭建不是孤立的一步一步,而是一个环环相扣的系统工程。
看到这张图你应该明白了:底层是操作系统,往上依次是Python环境、GPU加速库,最上层才是深度学习框架。每一层都依赖下一层正常工作。所以,别急着装PyTorch,先确认驱动和CUDA没问题。
最后说一句:环境搭建是最枯燥但最重要的一步。我见过太多人花一周配环境,结果发现是驱动版本不对。按照上面的步骤来,每一步验证通过再往下走,基本不会出大问题。嗯,动手试试吧。
可可精品资料库