Initial PCT Jittor implementation
基于 Jittor 实现的 Point Cloud Transformer (PCT),用于 ModelNet40 点云分类任务。
本项目使用 Jittor 深度学习框架实现了一个 PCT 点云分类模型。模型输入为三维点云,输出为 ModelNet40 数据集中的 40 类物体类别预测结果。
主要功能:
.npy
pct.py 主训练和推理脚本 pct_model.pkl 最优模型权重 result.json 测试集预测结果 RESULTS.md 本地实验结果记录 PA3_README.pdf 作业说明文件
数据集文件和中间训练结果体积较大,已通过 .gitignore 屏蔽,不上传到仓库。
.gitignore
推荐使用 Python 3.7 的 conda 环境:
conda create -n jittor python=3.7 pip -y conda activate jittor pip install jittor numpy pillow tqdm
如果使用 GPU,请确认 NVIDIA 驱动和 CUDA 环境可用。代码中默认启用 CUDA:
jt.flags.use_cuda = 1
代码默认读取以下文件:
data/train_points.npy data/train_labels.npy data/test_points.npy data/categories.txt
作业数据集下载地址:
https://cloud.tsinghua.edu.cn/f/f003de5a2e914d1e9e0e/?dl=1
下载后在项目根目录解压:
unzip -n data.zip
解压后目录结构应类似:
PCT_jittor/ ├── pct.py ├── data/ │ ├── train_points.npy │ ├── train_labels.npy │ ├── test_points.npy │ └── categories.txt
模型主体为 Point Cloud Transformer,整体流程如下:
输入点云 (B, 3, N) → Conv1d 点特征嵌入 → 4 层 Self-Attention → 多层特征拼接 → Conv1d 特征融合 → 全局最大池化 → 全连接分类头 → 输出 40 类 logits
其中自注意力模块用于建模点与点之间的全局几何关系。
本项目当前最优配置如下:
python pct.py \ --data_dir ./data \ --epochs 400 \ --batch_size 32 \ --n_points 1024 \ --lr 0.01 \ --optimizer sgd \ --weight_decay 1e-4 \ --eta_min 1e-5 \ --augment_version aug_v1 \ --save_dir runs/aug_v1_e400_np1024_bs32_lr001
aug_v1 数据增强包括:
aug_v1
随机绕 Y 轴旋转 随机缩放 随机平移 随机 jitter 抖动
训练完成后会在 save_dir 中生成:
save_dir
train.log pct_model.pkl result.json
使用已保存模型生成测试集预测:
python pct.py \ --data_dir ./data \ --n_points 1024 \ --batch_size 32 \ --augment_version aug_v1 \ --eval_only \ --load_model pct_model.pkl \ --tta_votes 1 \ --save_dir eval
预测结果会保存到:
eval/result.json
result.json 的格式为:
result.json
{ "0": 12, "1": 4, "2": 37 }
其中 key 为测试样本编号,value 为预测类别编号。
当前最好评测准确率:
0.86
对应文件:
pct_model.pkl result.json
data/
data.zip
runs/
A Jittor implementation of Point Cloud Transformer (PCT) for ModelNet40 classification
PCT_jittor
基于 Jittor 实现的 Point Cloud Transformer (PCT),用于 ModelNet40 点云分类任务。
项目简介
本项目使用 Jittor 深度学习框架实现了一个 PCT 点云分类模型。模型输入为三维点云,输出为 ModelNet40 数据集中的 40 类物体类别预测结果。
主要功能:
.npy点云数据文件说明
数据集文件和中间训练结果体积较大,已通过
.gitignore屏蔽,不上传到仓库。环境配置
推荐使用 Python 3.7 的 conda 环境:
如果使用 GPU,请确认 NVIDIA 驱动和 CUDA 环境可用。代码中默认启用 CUDA:
数据集
代码默认读取以下文件:
作业数据集下载地址:
下载后在项目根目录解压:
解压后目录结构应类似:
模型结构
模型主体为 Point Cloud Transformer,整体流程如下:
其中自注意力模块用于建模点与点之间的全局几何关系。
训练方法
本项目当前最优配置如下:
aug_v1数据增强包括:训练完成后会在
save_dir中生成:推理方法
使用已保存模型生成测试集预测:
预测结果会保存到:
result.json的格式为:其中 key 为测试样本编号,value 为预测类别编号。
实验结果
当前最好评测准确率:
对应文件:
备注
data/和data.zip不上传到 Gitlink,请根据上面的链接自行下载。runs/为中间实验目录,不上传到仓库。