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 版本很老,导致命令运行极慢甚至失败。
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-0-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结果和作者差不多。

浙公网安备 33010602011771号