Add LICENSE
本仓库为 第六届计图(Jittor)人工智能挑战赛 赛道二(点云分类)热身赛的参赛实现,基于 Jittor 框架。
最终在赛道二评测集上的分类准确率为 0.8489。
PCT 分类网络由以下模块串联而成:
Conv1d
模型参数量约 1.37 M。
. ├── pct.py # 数据集、模型、训练、单模型推理 ├── ensemble.py # 双模型 logits 集成 + 测试时增强 ├── eval_train.py # 在干净训练集上评估模型精度 ├── pyproject.toml # 依赖声明(uv 管理) ├── uv.lock # 依赖锁定 ├── README.md └── .gitignore
依赖:Python 3.10、g++ 12、CUDA 显卡(本仓库在 NVIDIA RTX 4090 + CUDA 12.2 环境下测试通过)。推荐使用 uv 管理虚拟环境:
uv sync uv run python -m jittor_utils.install_cuda
ModelNet40 已预处理为四个文件,可从 挑战赛页面下载。
以模型 A(输入点数 1024)的默认配置训练并产出 result.json:
result.json
uv run python pct.py
# 1) 模型 A:输入点数 1024 uv run python pct.py \ --n_points 1024 --batch_size 32 --epochs 400 \ --label_smoothing 0.1 --model_path pct_model_n1024.pkl # 2) 模型 B:输入点数 2048 uv run python pct.py \ --n_points 2048 --batch_size 32 --epochs 300 \ --label_smoothing 0.1 --model_path pct_model_n2048.pkl # 3) 集成两模型生成最终 result.json uv run python ensemble.py \ --model_a pct_model_n1024.pkl --npts_a 1024 \ --model_b pct_model_n2048.pkl --npts_b 2048 \ --n_votes 15
--data_dir
../data
--n_points
--batch_size
--epochs
--lr
--optimizer
adamw
sgd
--label_smoothing
--grad_clip
--n_votes
--model_path
pct_model.pkl
--result_path
{"样本编号": 类别 id}
A Jittor implementation of Point Cloud Transformer (PCT) for ModelNet40 classification.
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
PCT_jittor
本仓库为 第六届计图(Jittor)人工智能挑战赛 赛道二(点云分类)热身赛的参赛实现,基于 Jittor 框架。
最终在赛道二评测集上的分类准确率为 0.8489。
模型结构
PCT 分类网络由以下模块串联而成:
Conv1d将每个点的三维坐标映射到 128 维特征 (3→128→128)。Conv1d(LeakyReLU)提升至 1024 维。模型参数量约 1.37 M。
训练设置
项目结构
安装
依赖:Python 3.10、g++ 12、CUDA 显卡(本仓库在 NVIDIA RTX 4090 + CUDA 12.2 环境下测试通过)。推荐使用 uv 管理虚拟环境:
数据集
ModelNet40 已预处理为四个文件,可从 挑战赛页面下载。
运行
训练单模型
以模型 A(输入点数 1024)的默认配置训练并产出
result.json:训练双模型并集成
常用参数
--data_dir../data--n_points--batch_size--epochs--lr--optimizeradamwsgd/adamw)--label_smoothing--grad_clip--n_votes--model_pathpct_model.pkl--result_pathresult.json输出
pct_model.pkl— 训练完成的 PCT 模型权重(Jittor pickle 格式)。result.json— 测试集每个样本的预测类别,格式为{"样本编号": 类别 id}的 JSON 字典。致谢