docs: update repository title
本项目是图形学实验 PA3:Point Cloud Transformer 的 Jittor 实现,用于在 ModelNet40 点云数据集上完成三维形状分类任务。代码包含数据读取、点云增强、模型训练、验证、测试集推理和预测结果导出流程。
最终线上提交结果已在头歌 Educoder Jittor-7 平台通过评测,分数为 0.8266,评测编号为 2026051510143346343746。
0.8266
2026051510143346343746
. ├── configs/ │ └── default.json ├── data/ │ └── README.md ├── scripts/ │ ├── eval.sh │ └── train.sh ├── src/ │ └── pct.py ├── .gitignore ├── LICENSE ├── README.md └── requirements.txt
说明:
src/pct.py
configs/default.json
scripts/train.sh
scripts/eval.sh
data/README.md
outputs/
建议使用 Python 3.8 或更高版本。Jittor 当前支持 Linux 和 Windows/WSL,运行前需要安装 C++ 编译器,例如 g++ 或 clang。
g++
clang
安装依赖:
pip install -r requirements.txt
如果 Jittor 安装遇到问题,可参考官方安装教程:
https://cg.cs.tsinghua.edu.cn/jittor/download/
本项目使用预处理后的 ModelNet40 numpy 数据。数据文件体积较大,不放入代码仓库。请将数据放到 data/ 目录下:
data/
data/ train_points.npy train_labels.npy test_points.npy
也可以通过命令行参数 --data_dir 指定其他数据目录,例如:
--data_dir
python src/pct.py --data_dir /path/to/modelnet40
使用默认参数训练并导出测试集预测结果:
bash scripts/train.sh
等价命令如下:
python src/pct.py \ --data_dir ./data \ --model pct \ --n_points 1024 \ --batch_size 32 \ --epochs 200 \ --seed 42 \ --model_path outputs/pct_model.pkl \ --result_path outputs/result.json
CPU 快速 smoke test:
python src/pct.py --epochs 1 --batch_size 4 --n_points 128 --num_workers 0
使用已训练好的 checkpoint 进行推理:
bash scripts/eval.sh outputs/pct_model.pkl
python src/pct.py \ --eval_only \ --data_dir ./data \ --model pct \ --model_path outputs/pct_model.pkl \ --result_path outputs/result.json
推理完成后,将生成的 outputs/result.json 提交到头歌 Educoder Jittor-7 平台评测。
outputs/result.json
线上评测指标为测试集分类准确率。result.json 采用“样本编号到预测类别”的映射格式,平台根据预测类别与隐藏测试集标签计算准确率。
result.json
本次最终提交结果:
accept
最终预测结果文件已上传至清华云盘:
https://cloud.tsinghua.edu.cn/f/e2367ccc06564baab01c/
代码提供 --seed 参数,并在程序入口统一设置 NumPy 和 Jittor 的随机种子。训练和评测的关键参数均可通过命令行传入,常用参数见 configs/default.json。
--seed
scripts/train.sh 和 scripts/eval.sh 会在 outputs/ 中保存本次运行的 config.json、command.txt 和日志文件。由于训练过程包含随机采样和数据增强,不同硬件、Jittor 版本或随机种子下的结果可能与最终线上分数存在小幅差异。
config.json
command.txt
本项目基于 Jittor 和 NumPy 实现。PCT 网络结构参考 Point Cloud Transformer 相关论文和课程实验说明,代码由本实验实现与整理。
A Jittor implementation of Point Cloud Transformer (PCT) for ModelNet40 classification
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
jittor-原泽宇-PCT_jittor
本项目是图形学实验 PA3:Point Cloud Transformer 的 Jittor 实现,用于在 ModelNet40 点云数据集上完成三维形状分类任务。代码包含数据读取、点云增强、模型训练、验证、测试集推理和预测结果导出流程。
最终线上提交结果已在头歌 Educoder Jittor-7 平台通过评测,分数为
0.8266,评测编号为2026051510143346343746。目录结构
说明:
src/pct.py:核心代码,包含数据集读取、模型定义、训练、验证、推理和结果导出。configs/default.json:默认训练与评测参数说明。scripts/train.sh:训练脚本。scripts/eval.sh:推理脚本。data/README.md:数据准备说明。outputs/:默认输出目录,保存模型、日志和预测结果,不提交到仓库。环境安装
建议使用 Python 3.8 或更高版本。Jittor 当前支持 Linux 和 Windows/WSL,运行前需要安装 C++ 编译器,例如
g++或clang。安装依赖:
如果 Jittor 安装遇到问题,可参考官方安装教程:
数据准备
本项目使用预处理后的 ModelNet40 numpy 数据。数据文件体积较大,不放入代码仓库。请将数据放到
data/目录下:也可以通过命令行参数
--data_dir指定其他数据目录,例如:训练
使用默认参数训练并导出测试集预测结果:
等价命令如下:
CPU 快速 smoke test:
评测与推理
使用已训练好的 checkpoint 进行推理:
等价命令如下:
推理完成后,将生成的
outputs/result.json提交到头歌 Educoder Jittor-7 平台评测。结果说明
线上评测指标为测试集分类准确率。
result.json采用“样本编号到预测类别”的映射格式,平台根据预测类别与隐藏测试集标签计算准确率。本次最终提交结果:
accept0.82662026051510143346343746最终预测结果文件已上传至清华云盘:
https://cloud.tsinghua.edu.cn/f/e2367ccc06564baab01c/
可复现性说明
代码提供
--seed参数,并在程序入口统一设置 NumPy 和 Jittor 的随机种子。训练和评测的关键参数均可通过命令行传入,常用参数见configs/default.json。scripts/train.sh和scripts/eval.sh会在outputs/中保存本次运行的config.json、command.txt和日志文件。由于训练过程包含随机采样和数据增强,不同硬件、Jittor 版本或随机种子下的结果可能与最终线上分数存在小幅差异。第三方依赖与声明
本项目基于 Jittor 和 NumPy 实现。PCT 网络结构参考 Point Cloud Transformer 相关论文和课程实验说明,代码由本实验实现与整理。