本项目新增代码按 MIT License 发布。赛事 starter、PCT 架构和论文引用
信息见 NOTICE;第三方内容仍遵循其原始条款。
如果本项目对研究有帮助,请引用 PCT:
@article{guo2021pct,
title={PCT: Point Cloud Transformer},
author={Guo, Meng-Hao and Cai, Jun-Xiong and Liu, Zheng-Ning and
Mu, Tai-Jiang and Martin, Ralph R. and Hu, Shi-Min},
journal={Computational Visual Media},
year={2021}
}
Jittor 2026 热身赛二:ModelNet40 点云分类
本仓库是第六届计图人工智能挑战赛热身赛二的开源实现。项目使用 Jittor 实现 Point Cloud Transformer(PCT),在 ModelNet40 点云上完成 40 类分类, 并生成比赛要求的
result.json和result.zip。仓库只包含可复现源码,不包含比赛数据、模型权重、训练日志或提交结果。
项目结构
环境安装
推荐环境:
使用 Docker
使用本地 Python
Jittor 首次运行时会编译算子。CUDA、编译器与驱动的具体兼容要求请参考 Jittor 官方安装文档。
数据准备
从比赛平台下载热身赛二提供的
data.zip,在仓库根目录解压:解压后的结构必须是:
数据文件不应提交到 Git。需要使用其他位置时,通过
--data-root覆盖配置:更详细的数据约束见 data/README.md。
训练
默认配置使用 SGD 训练 200 个 epoch:
等价的脚本入口:
关键参数来自 configs/train.json,显式命令行参数优先, 例如:
默认输出到
outputs/train/:pct_best.pkl:训练集准确率最高的 checkpoint;config.json:合并配置文件与命令行参数后的实际配置;command.txt:本次运行命令;train.log:训练日志。比赛数据没有单独公开验证集,因此本实现按训练集准确率保存 checkpoint。 训练集准确率只用于观察优化过程,不等同于官方测试准确率。
推理与提交
使用训练产生的 checkpoint 推理:
也可以运行:
默认进行 8 次确定性重采样投票,并在
outputs/infer/生成:result.json:2468 个测试样本的类别编号;result.zip:仅包含result.json的比赛提交包;config.json、command.txt和infer.log:复现记录。单独重新打包或检查已有提交包:
提交到比赛平台的是
outputs/infer/result.zip,不是仓库根目录或整个工程。结果说明
官方指标是测试集分类准确率:预测类别与真实类别一致的样本数除以 2468。 测试标签不公开,本仓库不能在本地计算官方指标。模型、随机种子、训练轮数、 Jittor/CUDA 版本和重采样投票数变化都可能使复现成绩与历史线上提交存在差异。
可复现性
42,同时设置 Python、NumPy 和 Jittor 随机状态。seed + epoch + sample index派生的确定性随机流。num_workers=0,避免多进程数据加载引入额外非确定性。GPU 浮点计算和不同底层库版本仍可能带来微小差异。如需优先复现,请保留默认 依赖版本、配置与设备类型。
测试
无需数据和 Jittor 即可运行配置与提交格式测试:
完整训练前建议先用较短配置做端到端检查:
本次发布前实际执行的检查及未覆盖范围见 VALIDATION.md。
许可证与引用
本项目新增代码按 MIT License 发布。赛事 starter、PCT 架构和论文引用 信息见 NOTICE;第三方内容仍遵循其原始条款。
如果本项目对研究有帮助,请引用 PCT: