chore: merge GitLink initial master
本仓库为计图挑战赛赛道二热身赛开源代码,使用 Jittor 实现 Point Cloud Transformer (PCT),用于 ModelNet40 点云分类任务。
GitLink 热身赛仓库:
https://www.gitlink.org.cn/Aaaa-xiaoxia/PCT
按比赛开源命名规范,项目名为:
jittor-研途致远-计图挑战赛赛道二热身赛
本项目从预处理后的 .npy 文件读取训练集和测试集点云,训练 PCT 分类模型,并生成线上提交所需的 result.json。
.npy
result.json
主要文件:
. ├── pct.py # 训练与推理主程序 ├── requirements.txt # Python 依赖 ├── LICENSE # 开源协议 ├── data/ │ ├── README.md # 数据放置说明 │ └── categories.txt # ModelNet40 类别名称 └── 开源代码规范(计图比赛).md # 比赛开源规范
数据集、模型权重和运行产物不纳入 git 管理,请按下文说明放置或生成。
建议使用 Python 3.8 或更高版本。
pip install -r requirements.txt
如需使用 GPU,请确保本机 CUDA 环境可被 Jittor 正确识别。若只在 CPU 上调试,可在运行命令中加入 --use_cuda 0。
--use_cuda 0
请将比赛提供或预处理后的数据放到 data/ 目录下:
data/
data/ ├── train_points.npy ├── train_labels.npy ├── test_points.npy └── categories.txt
数据说明:
train_points.npy
(N, 2048, 3)
train_labels.npy
(N,)
test_points.npy
categories.txt
默认训练 200 个 epoch,并在训练结束后保存权重和预测结果:
python pct.py --mode train --data_dir ./data --n_points 1024 --batch_size 32 --epochs 200 --lr 0.01 --seed 42 --model_path outputs/pct_model.pkl --output_path outputs/result.json
训练输出:
outputs/pct_model.pkl outputs/result.json
已有模型权重时,可以直接加载 checkpoint 并生成预测文件:
python pct.py --mode infer --data_dir ./data --n_points 1024 --batch_size 32 --seed 42 --model_path outputs/pct_model.pkl --output_path outputs/result.json
如果使用当前目录下已有的本地权重,也可以运行:
python pct.py --mode infer --data_dir ./data --model_path pct_model.pkl --output_path result.json
脚本输出的 result.json 为测试集预测结果,格式为:
{ "0": 12, "1": 4 }
其中 key 为测试样本编号,value 为预测类别编号。线上成绩以比赛平台评测结果为准;本地重新训练可能因随机初始化、硬件环境和训练轮数不同而与当前提交结果存在差异。
模型输入为点云坐标 (B, 3, N),先通过两层 1D 卷积提取特征,再堆叠 4 个 self-attention 层建模点之间的关系,随后融合全局特征并使用全连接层完成 40 类分类。
(B, 3, N)
训练配置:
--seed
本仓库用于计图挑战赛代码开源。提交前请确认:
本项目采用 MIT License。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
jittor-研途致远-计图挑战赛赛道二热身赛
本仓库为计图挑战赛赛道二热身赛开源代码,使用 Jittor 实现 Point Cloud Transformer (PCT),用于 ModelNet40 点云分类任务。
GitLink 热身赛仓库:
按比赛开源命名规范,项目名为:
项目简介
本项目从预处理后的
.npy文件读取训练集和测试集点云,训练 PCT 分类模型,并生成线上提交所需的result.json。主要文件:
数据集、模型权重和运行产物不纳入 git 管理,请按下文说明放置或生成。
环境安装
建议使用 Python 3.8 或更高版本。
如需使用 GPU,请确保本机 CUDA 环境可被 Jittor 正确识别。若只在 CPU 上调试,可在运行命令中加入
--use_cuda 0。数据准备
请将比赛提供或预处理后的数据放到
data/目录下:数据说明:
train_points.npy: 训练点云,形状通常为(N, 2048, 3)train_labels.npy: 训练标签,形状通常为(N,)test_points.npy: 测试点云,形状通常为(N, 2048, 3)categories.txt: 40 个类别名称,每行一个类别训练
默认训练 200 个 epoch,并在训练结束后保存权重和预测结果:
训练输出:
评测/推理
已有模型权重时,可以直接加载 checkpoint 并生成预测文件:
如果使用当前目录下已有的本地权重,也可以运行:
结果说明
脚本输出的
result.json为测试集预测结果,格式为:其中 key 为测试样本编号,value 为预测类别编号。线上成绩以比赛平台评测结果为准;本地重新训练可能因随机初始化、硬件环境和训练轮数不同而与当前提交结果存在差异。
方法说明
模型输入为点云坐标
(B, 3, N),先通过两层 1D 卷积提取特征,再堆叠 4 个 self-attention 层建模点之间的关系,随后融合全局特征并使用全连接层完成 40 类分类。训练配置:
--seed设置开源说明
本仓库用于计图挑战赛代码开源。提交前请确认:
License
本项目采用 MIT License。