清除cache
计图挑战赛赛道二热身赛 ModelNet40 点云分类方案。项目使用 Jittor 实现 PCT (Point Cloud Transformer) 模型,并通过 5 折训练集成生成测试集提交文件。
当前线上提交得分:0.8002。
0.8002
. ├── configs/ # 训练/推理配置示例 ├── data/ # 本地数据目录,只提交数据说明和类别文件 ├── outputs/ # 运行日志、命令和配置快照,默认不提交 ├── scripts/ # 运行脚本 ├── tools/ # 辅助工具说明 ├── pct.py # 核心模型、训练、验证和预测实现 ├── requirements.txt # Python 依赖 ├── LICENSE └── NOTICE
推荐环境:
安装依赖:
pip install -r requirements.txt
如需使用虚拟环境:
python -m venv .venv # Windows PowerShell .\.venv\Scripts\Activate.ps1 # Linux / macOS source .venv/bin/activate pip install -r requirements.txt
从比赛页面下载预处理后的 ModelNet40 数据,并放置为以下结构:
data/ ├── categories.txt ├── train_points.npy # shape: (9843, 2048, 3) ├── train_labels.npy # shape: (9843,) └── test_points.npy # shape: (2468, 2048, 3)
数据根目录通过 --data_dir 指定,默认是 ./data。.npy 数据文件体积较大, 不应随开源仓库提交;data/README.md 中也列出了同样的路径要求。
--data_dir
./data
.npy
data/README.md
使用配置文件运行完整 5 折训练与测试集预测:
python scripts/train.py --config configs/pct_modelnet40.json
等价的直接运行命令:
python pct.py --data_dir ./data --n_points 512 --batch_size 32 --epochs 80 --lr 0.001 --seed 42 --folds 5 --patience 12 --label_smoothing 0.1
scripts/train.py 会在 outputs/ 下保存本次运行的配置快照、命令和训练日志。 需要临时覆盖参数时,可把额外参数放在 -- 之后:
scripts/train.py
outputs/
--
python scripts/train.py --config configs/pct_modelnet40.json -- --epochs 5 --batch_size 16
训练过程中会生成 pct_fold_1.pkl 到 pct_fold_5.pkl,并在训练结束后生成 result.json。
pct_fold_1.pkl
pct_fold_5.pkl
result.json
测试集没有公开标签,因此本地评测以训练过程中的 5 折验证准确率为准。若已存在 5 个 fold checkpoint,可直接生成测试集预测:
python scripts/infer.py --config configs/pct_modelnet40.json --output result.json
也可以显式指定 checkpoint:
python scripts/infer.py --config configs/pct_modelnet40.json --checkpoints pct_fold_1.pkl pct_fold_2.pkl pct_fold_3.pkl pct_fold_4.pkl pct_fold_5.pkl --output result.json
打包提交文件:
python scripts/package_result.py --input result.json --output result.zip
提交压缩包结构:
result.zip └── result.json
result.json 格式为:
{ "0": 4, "1": 35, "2": 10 }
key 为测试集样本编号字符串,value 为类别编号整数。
argmax
本地 5 折验证准确率会受到随机种子、Jittor/CUDA 版本、GPU 算子确定性等影响,与线上隐藏测试集得分可能存在小幅差异。
42
--seed
configs/pct_modelnet40.json
config.json
command.txt
train.log
.gitignore
本项目使用 Jittor 深度学习框架,并参考 PCT 点云分类模型结构。相关说明见NOTICE。
NOTICE
第六届计图人工智能挑战赛-热身赛
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
jittor-ModelNet40
计图挑战赛赛道二热身赛 ModelNet40 点云分类方案。项目使用 Jittor 实现 PCT (Point Cloud Transformer) 模型,并通过 5 折训练集成生成测试集提交文件。
当前线上提交得分:
0.8002。项目结构
环境安装
推荐环境:
安装依赖:
如需使用虚拟环境:
数据准备
从比赛页面下载预处理后的 ModelNet40 数据,并放置为以下结构:
数据根目录通过
--data_dir指定,默认是./data。.npy数据文件体积较大, 不应随开源仓库提交;data/README.md中也列出了同样的路径要求。训练
使用配置文件运行完整 5 折训练与测试集预测:
等价的直接运行命令:
scripts/train.py会在outputs/下保存本次运行的配置快照、命令和训练日志。 需要临时覆盖参数时,可把额外参数放在--之后:训练过程中会生成
pct_fold_1.pkl到pct_fold_5.pkl,并在训练结束后生成result.json。评测 / 推理
测试集没有公开标签,因此本地评测以训练过程中的 5 折验证准确率为准。若已存在 5 个 fold checkpoint,可直接生成测试集预测:
也可以显式指定 checkpoint:
打包提交文件:
提交压缩包结构:
result.json格式为:key 为测试集样本编号字符串,value 为类别编号整数。
结果说明
argmax。0.8002。本地 5 折验证准确率会受到随机种子、Jittor/CUDA 版本、GPU 算子确定性等影响,与线上隐藏测试集得分可能存在小幅差异。
可复现说明
42,可通过--seed或配置文件字段调整。configs/pct_modelnet40.json。config.json、command.txt和train.log到outputs/。.gitignore,开源提交前请确认未提交大文件或训练中间产物。第三方引用
本项目使用 Jittor 深度学习框架,并参考 PCT 点云分类模型结构。相关说明见
NOTICE。