目录

PCT 点云分类 (ModelNet40)

基于 Jittor 框架的 Point Cloud Transformer (PCT) 模型,用于 ModelNet40 三维点云形状分类任务。

赛题背景见 docs/problem_statement.md

环境安装

  • Python >= 3.8
  • CUDA >= 11.0
pip install -r requirements.txt

数据准备

从竞赛平台下载数据集,放置于 data/ 目录下:

data/
├── train_points.npy    # 训练集点云 (9843, 2048, 3)
├── train_labels.npy    # 训练集标签 (9843,)
├── test_points.npy     # 测试集点云 (2468, 2048, 3)
└── categories.txt      # 40 个类别名称

也可通过 --data_dir 参数指定数据目录。

本仓库不提交原始 .npy 数据、训练权重和提交结果;这些文件按需放在本地目录中。

训练

python pct.py --epochs 450 --batch_size 32 --lr 0.0008 --seed 42 --model_path pct_model.pkl --output_path result.json

主要参数:

参数 默认值 说明
--data_dir ./data 数据目录
--n_points 1024 每个样本采样点数
--batch_size 32 批次大小
--epochs 450 训练轮数
--lr 0.0008 初始学习率
--seed 42 随机种子
--model_path pct_model.pkl 模型权重路径
--output_path result.json 测试集预测输出路径

训练完成后自动保存模型 pct_model.pkl 并对测试集生成预测 result.json

验证

使用训练集固定随机划分的 20% 作为验证集评估模型:

python validate.py --model_path pct_model.pkl --data_dir ./data --seed 42

需要 pct_model.pkl 存在于当前目录。

推理

训练脚本会在训练结束后自动对测试集推理并保存 result.json。如需单独推理,可加载已有模型重新运行:

python pct.py --epochs 0 --model_path pct_model.pkl --data_dir ./data --output_path result.json

结果说明

  • 指标:Top-1 分类准确率
  • 输出格式:result.json,键为样本编号(字符串),值为预测类别编号(整数)
  • 验证集准确率约 92.79%,测试集与验证集可能存在分布差异

方法简述

  • 模型:PCT,4 层 Self-Attention + 全局最大池化
  • 优化器:Adam (weight_decay=1e-4) + Cosine Annealing LR
  • 数据增强:Y 轴全旋转 + X/Z 轴小幅旋转(±15°)、各向同性缩放、平移、高斯噪声、随机点丢弃
  • 正则化:Dropout 0.55

参考

关于

jittor2026,热身赛2

44.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号