feat: 初始化 PCT 点云分类项目(基线训练+推理+提交校验) src/: PCT 模型与 ModelNet40 数据集定义 scripts/: train.py 训练、predict.py 推理生成 result.zip tools/check_submission.py 提交格式校验 configs/train_config.json 训练超参记录 README/LICENSE/.gitignore/requirements.txt 按开源代码规范补齐
feat: 初始化 PCT 点云分类项目(基线训练+推理+提交校验)
计图比赛热身赛 · 战队「冬日」· 点云分类项目
基于 Jittor 框架实现 PCT(Point Cloud Transformer),对 ModelNet40 风格的 点云数据进行 40 类分类,并生成比赛提交文件 result.zip。
result.zip
├── configs/ # 训练配置(记录实际使用的超参数) ├── src/ # 核心代码 │ ├── model.py # PCT / SA_Layer 模型定义 │ └── dataset.py # ModelNet40Dataset 数据集定义 ├── scripts/ # 运行脚本 │ ├── train.py # 训练(含日志、曲线、分析) │ └── predict.py # 推理并生成 result.json + result.zip ├── tools/ # 工具脚本 │ └── check_submission.py # 校验提交文件格式 ├── data/ # 数据目录(只放说明,大文件不入库,见 data/README.md) ├── outputs/ # 训练产物:权重/日志/曲线(默认不提交) ├── result.json # 最终预测结果(2468 个测试样本) └── result.zip # 比赛提交文件
jt.flags.use_cuda = 1
pip install -r requirements.txt
matplotlib 和 scikit-learn 为可选依赖,缺失时训练仍可运行 (自动跳过绘图、混淆矩阵、t-SNE)。
matplotlib
scikit-learn
将比赛数据放入 data/ 目录(数据下载自比赛官方页面,不入库):
data/
data/ ├── train_points.npy # (9843, 2048, 3) 训练点云 ├── train_labels.npy # (9843,) 训练标签,int 0-39 ├── test_points.npy # (2468, 2048, 3) 测试点云(无标签) └── categories.txt # 40 个类别名,每行一个
数据根目录默认为 ./data,可用 --data_dir 修改。详见 data/README.md。
./data
--data_dir
data/README.md
python scripts/train.py --seed 42 --epochs 200 --lr 0.01 --batch_size 32 --output_dir outputs
configs/train_config.json
outputs/
config.json
command.txt
training_log.csv
pct_baseline_best.pkl
# 单次推理 python scripts/predict.py --model_path outputs/pct_baseline_best.pkl # 多次采样投票(更稳定,最终提交使用的方式) python scripts/predict.py --model_path outputs/pct_baseline_best.pkl --num_votes 5
输出 result.json 与 result.zip(zip 内文件名必须为 result.json)。 可用工具单独校验格式:
result.json
python tools/check_submission.py result.json
data/test_labels.npy
outputs/training_log.csv
--num_votes 5
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
jittor-冬日-点云分类
基于 Jittor 框架实现 PCT(Point Cloud Transformer),对 ModelNet40 风格的 点云数据进行 40 类分类,并生成比赛提交文件
result.zip。目录结构
环境安装
jt.flags.use_cuda = 1)matplotlib和scikit-learn为可选依赖,缺失时训练仍可运行 (自动跳过绘图、混淆矩阵、t-SNE)。数据准备
将比赛数据放入
data/目录(数据下载自比赛官方页面,不入库):数据根目录默认为
./data,可用--data_dir修改。详见data/README.md。训练
configs/train_config.json一致; 命令行参数优先。outputs/下落盘:config.json(实际配置)、command.txt(运行命令)、training_log.csv(日志)、 每 10 epoch 的 checkpoint、pct_baseline_best.pkl(按训练准确率最优保存)。评测/推理
输出
result.json与result.zip(zip 内文件名必须为result.json)。 可用工具单独校验格式:结果说明
data/test_labels.npy不存在),本地无法计算 测试准确率;pct_baseline_best.pkl是按训练准确率最优保存的 (本仓库训练记录:200 epochs 后最佳训练准确率 89.25%,见outputs/training_log.csv),线上成绩以评测平台为准。--num_votes 5投票可提高稳定性,最终成绩与单次推理可能存在 合理差异。第三方引用与声明