目录

PCT for ModelNet40 – 使用说明

基于 Jittor 的 Point Cloud Transformer (PCT) 模型,用于 ModelNet40 三维形状分类任务。


1. 环境安装

  • Python 3.12

  • 安装依赖(推荐使用虚拟环境):

    • 需要jittor环境。jittor安装,请参考 Jittor 官方安装指南

    • 其他库:

      python3.12 -m jittor_utils.install_cuda
      pip install numpy

2. 数据准备

数据集需预处理好为 .npy 格式,目录结构如下:

./data/
├── categories.txt       # 40 个类别名称
├── train_points.npy   # 训练点云 (N, 2048, 3)
├── train_labels.npy   # 训练标签 (N,)
└── test_points.npy    # 测试点云 (M, 2048, 3)

下载链接:ModelNet40 预处理文件

在运行命令中通过 --data_dir 指定数据根目录,默认为 ./data


3. 训练

启动训练(自动启用数据增强,默认 200 轮):

python src/pct.py --data_dir ./data --batch_size 32 --epochs 200 --lr 0.01 --seed 42

参数说明:

参数 默认值 含义
--data_dir ./data 数据目录
--batch_size 32 批大小
--epochs 200 训练轮数
--lr 0.01 初始学习率
--n_points 1024 采样点数
--seed 42 随机种子

训练过程中会输出每个 epoch 的 loss 和训练精度,最后保存模型为 outputs/pct_model.pkl,并自动生成测试集预测文件 outputs/result.json


4. 评测/推理

若已有训练好的模型 outputs/pct_model.pkl,可直接加载并对测试集进行预测(无需重新训练)。 执行:

python src/eval.py --model_path ./outputs/pct_model.pkl

输出文件 outputs/result.json 格式:{"样本编号": 预测类别, ...}


5. 结果说明

  • 指标:分类准确率 (Accuracy) = 正确预测样本数 / 总样本数 × 100%
  • 计算方式:训练过程中打印的 Train Acc 为训练集准确率;最终提交的 result.json 在测试集上计算得到最终成绩。
  • 结果波动:由于训练时训练数据做了随机增强和随机抽点,虽然设计了随机种子,但是随机数在每次运行时消耗顺序也不完全一致,因此正确率会有微小波动。测试集测试时由于也是随机抽点,因此正确率也会有微小波动。但是都能保证达到80%以上。

关于
64.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号