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

  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-0-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结果和作者差不多。
posted @ 2025-12-16 14:37  4U  阅读(25)  评论(0)    收藏  举报