first commit
基于 Jittor 框架的 PCT (Point Cloud Transformer) 模型,用于 ModelNet40 三维形状分类任务。
Reference: Guo et al., “PCT: Point Cloud Transformer”, Computational Visual Media, 2021.
# 创建并激活 conda 环境 conda create -n jitu python=3.9 -y conda activate jitu # 安装依赖 pip install jittor numpy tensorboardX
下载 ModelNet40 预处理数据集,将以下文件放入 data/ 目录:
data/
train_points.npy
train_labels.npy
test_points.npy
目录结构:
data/ ├── train_points.npy ├── train_labels.npy ├── test_points.npy └── README.md
可通过 --data_dir 指定数据目录:
--data_dir
python scripts/train.py --data_dir /path/to/data
使用默认配置训练:
python scripts/train.py
自定义参数:
python scripts/train.py --epochs 200 --lr 0.01 --batch_size 64 --optimizer sgd --scheduler warmup_cosine
启用半监督训练(利用测试集无标注数据):
python scripts/train.py --semi --semi_weight 1.0 --semi_conf 0.9 --semi_start_epoch 50
从检查点恢复训练:
python scripts/train.py --resume outputs/checkpoints/best_model.pkl
小样本快速测试(验证代码能跑通):
python scripts/train.py --test_mode
默认配置位于 configs/default.py。可通过 --config 指定其他配置文件,命令行参数优先级高于配置文件。
configs/default.py
--config
训练过程会保存:
outputs/logs/config.json
outputs/logs/command.txt
outputs/checkpoints/
outputs/logs/
python scripts/eval.py --ckpt outputs/checkpoints/best_model.pkl
预测结果保存为 result.json,格式为 {"样本编号": 预测类别}。
result.json
{"样本编号": 预测类别}
本地验证集从训练集随机划分(默认 90%/10%),与线上测试集分布可能存在差异,本地验证准确率仅供参考。
├── README.md ├── LICENSE ├── .gitignore ├── configs/ # 配置文件 │ └── default.py ├── src/ # 核心代码 │ ├── model.py # PCT 模型定义 │ ├── dataset.py # 数据集类 │ ├── utils.py # 点云工具函数 │ └── scheduler.py # 学习率调度器 ├── scripts/ # 运行脚本 │ ├── train.py # 训练入口 │ └── eval.py # 评测/推理入口 ├── tools/ # 工具脚本 ├── data/ # 数据说明 │ └── README.md └── outputs/ # 输出目录(不提交) ├── logs/ └── checkpoints/
--seed
config.json
command.txt
PCT 模型基于以下论文实现:
Guo, M. H., Cai, J. X., Liu, Z. N., Mu, T. J., Martin, R. R., & Hu, S. M. (2021). PCT: Point cloud transformer. Computational Visual Media, 7(2), 187-199.
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
PCT: Point Cloud Transformer for ModelNet40 Classification
基于 Jittor 框架的 PCT (Point Cloud Transformer) 模型,用于 ModelNet40 三维形状分类任务。
Reference: Guo et al., “PCT: Point Cloud Transformer”, Computational Visual Media, 2021.
环境安装
数据准备
下载 ModelNet40 预处理数据集,将以下文件放入
data/目录:train_points.npy— 训练点云 (N, 2048, 3)train_labels.npy— 训练标签 (N,)test_points.npy— 测试点云 (M, 2048, 3)目录结构:
可通过
--data_dir指定数据目录:训练
使用默认配置训练:
自定义参数:
启用半监督训练(利用测试集无标注数据):
从检查点恢复训练:
小样本快速测试(验证代码能跑通):
配置文件
默认配置位于
configs/default.py。可通过--config指定其他配置文件,命令行参数优先级高于配置文件。训练过程会保存:
outputs/logs/config.jsonoutputs/logs/command.txtoutputs/checkpoints/outputs/logs/评测/推理
预测结果保存为
result.json,格式为{"样本编号": 预测类别}。结果说明
评价指标
最佳成绩
与线上成绩差异
本地验证集从训练集随机划分(默认 90%/10%),与线上测试集分布可能存在差异,本地验证准确率仅供参考。
目录结构
可复现性
--seed设置随机种子(默认 42),统一设置 numpy 和 Jittor 的随机种子config.json)、运行命令 (command.txt) 和训练日志引用
PCT 模型基于以下论文实现: