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 安装

  1. 检查环境
    运行 ninja --version,输出版本号且 echo $? 为 0 即为正确。
  2. 下载安装包
    前往 Flash Attention Releases 页面下载对应版本。
    本次使用:flash_attn-2.5.5+cu118torch2.1cxx11abiFALSE-cp38-cp38-linux_x86_64.whl
  3. 安装
    pip install /path/to/your/whl_file.whl
    
  4. 验证
    python
    import flash_attn
    
    无报错即成功
    

4. 数据集准备 (S3DIS)

建议先使用 ScanNet 跑通流程(速度快),S3DIS 耗时较长,我是后来才知道的,所以先跑的s3dis。

  1. 下载:使用作者 HuggingFace 提供的 s3dis-compressed 数据,地址: https://huggingface.co/datasets/Pointcept/s3dis-compressed/tree/main
  2. 路径:在 Pointcept_main/data/s3dis 下存放数据集。

5. Config 文件准备

/configs/s3dis/ 下创建 semseg 文件夹,将配置文件 semseg-pt-v3m1-1-rpe.py 放入其中。

6. 训练过程 (Train)

  1. 运行脚本
    sh scripts/train.sh -g 4 -d s3dis -c semseg-pt-v3m1-1-rpe -n semseg-pt-v3m1-1-rpe
    
    • 注:缺少的模块直接 pip/conda 安装。
  2. WandB 配置
    根据提示选择选项(我忘了我选的第几个,需要wandb),注册wandb并获取 API Key。
  3. 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,不知道为什么这么差

posted @ 2025-12-16 14:37  4U  阅读(547)  评论(0)    收藏  举报