目录

<<<<<<< HEAD

PCT_jittor

=======

PCT_jittor_ModelNet40

Jittor 框架下的 Point Cloud Transformer (PCT) 点云分类项目,面向 ModelNet40 任务,包含单模型训练脚本、ensemble 推理脚本、实验配置与中文实验报告。

项目简介

本项目整理自课程实验过程,目标是:

  1. 提供一个清晰的 Jittor 版 PCT 点云分类实现
  2. 保留主要实验脚本与配置,支持继续训练和复现实验
  3. 给出当前最佳 ensemble 方案及其中文报告

当前仓库内记录的最佳方案为 pct_exp090_ens_only072,其评测平台分数为 0.9007

目录结构

PCT_jittor_ModelNet40/
├── configs/     # ensemble 配置
├── data/        # 数据目录说明
├── docs/        # 实验报告与单模型报告
├── models/      # 模型权重放置目录
├── output/      # 推理结果输出目录
├── scripts/     # 运行脚本
├── src/         # 训练与推理源码
├── .gitignore
└── README.md

环境要求

  • Python 3
  • Jittor
  • NumPy
  • CUDA 可用 GPU

数据准备

将以下文件放到 data/ 目录下:

  • train_points.npy
  • train_labels.npy
  • test_points.npy
  • categories.txt

目录说明见:

核心文件

训练脚本

推理脚本

最佳 ensemble 配置

方法报告

最佳 ensemble 方案

当前推荐的 ensemble 由 4 个成员模型组成:

模型 权重
pct_exp027_se_attention_pool 0.34
pct_exp016_best_seed2026 0.30
pct_exp069_ratio_e176_f896_seed2026 0.26
pct_exp072_seed3407_176_896_attention 0.10

推理参数:

  • n_points=1024
  • votes=8
  • tta=none
  • seed=2026

这里的 tta=none 表示不额外做旋转类测试增强,但每个 vote 仍会随机采样 1024 个点,并对多次预测结果取平均。

使用方法

1. 运行最佳 ensemble 推理

bash scripts/run_best_inference.sh

该脚本等价于:

python3 src/predict_exp046_multi_ensemble.py \
  --data_dir data \
  --config configs/best_09007_ensemble.json \
  --output output/pct_exp0907_reproduced_result.json \
  --n_points 1024 \
  --batch_size 32 \
  --votes 8 \
  --tta none \
  --seed 2026

2. 打包提交文件

bash scripts/package_submission.sh output/pct_exp0907_reproduced_result.json

实验说明

本项目保留了最佳方案相关的核心实验信息:

  • 基础强单模型
  • SE + attention pooling 结构改进
  • 参数比例调整后的 176/896 结构
  • 同结构不同 seed 的 ensemble 互补性

从实验结论看,当前最有效的提升来源于:

  1. 模型结构差异
  2. 随机种子带来的模型差异
  3. 多模型加权 ensemble

参考文档

关于

A Jittor implementation of Point Cloud Transformer (PCT) for ModelNet40 classification

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

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