Point Transformer V3复现
PTv3 (Point Transformer V3) AutoDL 4090 复现全流程与踩坑记录
本文档整合了在 AutoDL 服务器上复现 PTv3 的完整步骤、显存优化记录以及环境配置中常见问题的解决方案。
第一部分:AutoDL 复现步骤记录
1. 服务器配置
- 平台:AutoDL
- 配置:RTX 4090 (24GB) * 4, CPU 16核, 内存 120GB
- 基础环境:Python 3.8, CUDA 11.8, Ubuntu 20.04, PyTorch 2.0.0
2. 环境初始化
参考 PTv3官方 README 配置环境。
注意:务必将 Conda 更新到接近目前的最新版本。我的镜像自带的 Conda 版本很老,导致命令运行极慢甚至失败。
```bash
git clone https://github.com/Pointcept/Pointcept.git
conda create -n pointcept python=3.8 -y
conda activate pointcept
conda install ninja -y
conda install pytorch2.1.0 torchvision0.16.0 torchaudio==2.1.0 pytorch-cuda=11.8 -c pytorch -c nvidia
conda install h5py pyyaml -c anaconda -y
pip install SharedArray
pip install tensorboard
pip install tensorboardx
pip install yapf
pip install addict
pip install einops
pip install scipy
pip install plyfile
pip install termcolor
pip install timm
conda install pytorch-cluster -c pyg -y
conda install pytorch-scatter pytorch-sparse -c pyg -y
conda install pytorch-sparse -c pyg -y
pip install torch-geometric
cd libs/pointops
python setup.py install #记得关闭无卡模式开机,选带卡开机
cd ../..
spconv (SparseUNet)
refer https://github.com/traveller59/spconv
pip install spconv-cu118 # choose version match your local cuda version
Open3D (visualization, optional)
pip install open3d
````
3. Flash Attention 安装
- 检查环境
运行ninja --version,输出版本号且echo $?为 0 即为正确。 - 下载安装包
前往 Flash Attention Releases 页面下载对应版本。
本次使用:flash_attn-2.5.5+cu118torch2.1cxx11abiFALSE-cp38-cp38-linux_x86_64.whl - 安装
pip install /path/to/your/whl_file.whl - 验证
python import flash_attn 无报错即成功
4. 数据集准备 (S3DIS)
建议先使用 ScanNet 跑通流程(速度快),S3DIS 耗时较长,我是后来才知道的,所以先跑的s3dis。
- 下载:使用作者 HuggingFace 提供的
s3dis-compressed数据,地址: https://huggingface.co/datasets/Pointcept/s3dis-compressed/tree/main 。 - 路径:在
Pointcept_main/data/s3dis下存放数据集。
5. Config 文件准备
在 /configs/s3dis/ 下创建 semseg 文件夹,将配置文件 semseg-pt-v3m1-1-rpe.py 放入其中。
6. 训练过程 (Train)
- 运行脚本
sh scripts/train.sh -g 4 -d s3dis -c semseg-pt-v3m1-1-rpe -n semseg-pt-v3m1-1-rpe- 注:缺少的模块直接 pip/conda 安装。
- WandB 配置
根据提示选择选项(我忘了我选的第几个,需要wandb),注册wandb并获取 API Key。 - OOM (显存溢出) 处理:torch.cuda.OutOfMemoryError: CUDA out of memory.
- 调整:
batch_size设为 4,enc/dec_patch_size设为 64。 - 现象:Train/Val 正常,Test 阶段仍报 OOM。
- 调整:
更新记录 (2025.12.18)
1. 训练scannet
准备好数据集和config文件
sh scripts/train.sh -g 4 -d scannet -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
val结果为0.77,和作者差不多。
2. 再次运行 S3DIS 数据集
添加 -r true 参数继续训练:
sh scripts/train.sh -g 4 -d s3dis -c semseg-pt-v3m1-0-rpe -n semseg-pt-v3m1-0-rpe -r true
不报错了,但val结果只有0.65,猜测是learning_rate没调整。
更新记录 (2025.12.20)
1. 训练scannet200
准备好数据集和config文件
sh scripts/train.sh -g 4 -d scannet200 -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
val结果和作者差不多。
更新记录 (2025.12.23)
1. 使用作者原有的config文件训练s3dis数据集
val结果为0.67,不知道为什么这么差

浙公网安备 33010602011771号