第3章:点云深度学习环境搭建
说实话,环境搭建这事儿,看着简单,但坑是真不少。我见过太多同学,代码写得挺好,结果卡在环境配置上,一卡就是两三天。今天我就把这几年的经验掰开揉碎,带你一步步把环境搭好。
3.1 Ubuntu系统配置
我个人习惯用Ubuntu 20.04 LTS,原因很简单——稳定。18.04太老,22.04有些库还没完全适配。20.04是点云深度学习圈的「黄金版本」。
系统安装要点:
- 磁盘分区时,建议给根目录留至少100GB
- 交换分区设成内存大小的2倍(我踩过内存不够的坑)
- 安装时勾选「为图形或无线硬件安装第三方软件」
装完系统第一件事,更新源:
sudo apt update
sudo apt upgrade -y
sudo apt install build-essential cmake git vim -y
嗯,这里要注意。别一股脑全装最新版。我曾经在Ubuntu 22.04上装PyTorch,结果CUDA死活不认显卡,折腾了两天才发现是内核版本太高。所以,听我的,老老实实用20.04。
3.2 CUDA/CuDNN安装
CUDA版本怎么选?说白了,看你的显卡和PyTorch版本。我目前用的RTX 3090,CUDA 11.8是主流选择。
| 显卡型号 | 推荐CUDA版本 | 对应PyTorch版本 |
|---|---|---|
| RTX 30系列 | 11.8 | 2.0.x |
| RTX 40系列 | 12.1 | 2.1.x |
| Tesla V100 | 11.3 | 1.12.x |
安装CUDA 11.8的步骤:
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
避坑指南:安装时不要勾选Driver选项!系统自带的驱动通常更稳定。我曾经手贱装了NVIDIA驱动,结果和系统自带驱动冲突,直接黑屏。嗯,那次重装了系统。
配置环境变量:
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
验证安装:
nvcc --version
nvidia-smi
CuDNN安装更简单,下载后解压复制就行:
tar -xzvf cudnn-linux-x86_64-8.9.0.131_cuda11-archive.tar.xz
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
3.3 PyTorch/TensorFlow环境配置
我个人强烈推荐用conda管理环境。为什么?你想想看,项目一多,依赖冲突是家常便饭。conda能帮你隔离得干干净净。
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
创建点云专属环境:
conda create -n pointcloud python=3.9
conda activate pointcloud
安装PyTorch(CUDA 11.8版本):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
小技巧:安装前先确认PyTorch官网的最新稳定版。我习惯用pip而不是conda装PyTorch,因为conda源更新慢,容易装到旧版本。
验证PyTorch是否识别GPU:
python -c "import torch; print(torch.cuda.is_available())"
如果输出True,恭喜你,环境成了。
TensorFlow的安装类似:
pip install tensorflow==2.12.0
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
3.4 Open3D/PointNet++库安装
Open3D是点云处理的瑞士军刀。安装很简单:
pip install open3d
验证:
python -c "import open3d as o3d; print(o3d.__version__)"
PointNet++的安装稍微麻烦点。我建议直接从官方源码编译:
git clone https://github.com/yanx27/Pointnet_Pointnet2_pytorch.git
cd Pointnet_Pointnet2_pytorch
pip install -r requirements.txt
注意:PointNet++依赖的某些C++扩展需要编译。如果报错,八成是g++版本问题。我遇到过g++版本太高导致编译失败,降到g++-9就好了。
sudo apt install g++-9
export CC=gcc-9 CXX=g++-9
python setup.py install
3.5 Docker环境部署
Docker是终极解决方案。说白了,就是把你搭好的环境打包,换个机器也能直接用。
安装Docker:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
拉取点云深度学习镜像:
docker pull nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04
创建Dockerfile:
FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04
RUN apt update && apt install -y python3 python3-pip git
RUN pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
RUN pip3 install open3d numpy matplotlib
CMD ["/bin/bash"]
构建并运行:
docker build -t pointcloud-env .
docker run -it --gpus all -v /home/user/data:/data pointcloud-env
我的经验:Docker容器里用`-v`挂载数据目录,这样代码和数据分离,容器坏了也不怕。我曾经手滑删了容器,还好数据在外面,不然哭都来不及。
3.6 知识体系总览
下面这张图,是我梳理的整个环境搭建的脉络。你跟着这个流程走,基本不会迷路。
整个流程走下来,你会发现环境搭建其实就三步:系统打底、驱动和框架安装、工具库补齐。Docker是最后的保险,让你能在任何机器上复现环境。
好了,环境搭好了,下一章我们就要开始真正的点云数据处理了。到时候我会带你用Open3D读取点云,看看那些三维坐标到底长什么样。