ADD file via upload
这是一个基于 Jittor 框架的点云分类模型实现,用于 ModelNet40 三维形状分类任务。模型采用 Point Cloud Transformer (PCT) 架构,利用自注意力机制处理点云数据。
.npy
sudo apt install python3.7-dev libomp-dev python3.7 -m pip install jittor python3.7 -m jittor.test.test_example # 如果您电脑包含Nvidia显卡,检查cudnn加速库 python3.7 -m jittor.test.test_cudnn_op
PA3/ ├── pct.py # 主程序 ├── README.md # 本文件 ├── data/ # 数据目录 | ├── catagories.txt # 物品类别标签 │ ├── train_points.npy # 训练集点云 (N_train, 2048, 3) │ ├── train_labels.npy # 训练集标签 (N_train,) │ ├── test_points.npy # 测试集点云 (N_test, 2048, 3) ├── pct_model.pkl # 保存的训练完成的模型(模型训练后的输出文件) └── result.json # 测试集预测结果(模型训练后的输出文件)
python pct.py
--data_dir
./data
--n_points
1024
--batch_size
32
--epochs
200
--lr
0.01
--seed
42
使用示例:
python pct.py \ --data_dir ./data \ --n_points 1024 \ --batch_size 32 \ --epochs 200 \ --lr 0.01 \ --seed 42
根据 ModelNet40 数据集特性,推荐的超参数配置:
点云数据集类,支持:
自注意力层实现:
完整的分类模型:
输入 (B, 3, N) ↓ Conv1d + BN + ReLU (× 2) ↓ Self-Attention (× 4) ↓ 拼接多尺度特征 ↓ Conv1d 融合 (3×128 → 1024) ↓ 全局最大池化 ↓ FC + BN + ReLU + Dropout ↓ FC + BN + ReLU + Dropout ↓ FC (输出: num_classes) 输出 (B, 40)
余弦退火学习率调度器:
lr = η_min + (lr_0 - η_min) × (1 + cos(πt/T_max)) / 2
data/
pct_model.pkl
result.json
训练完成后保存的模型文件:
包含测试集预测结果的 JSON 文件,格式如下:
{ "0": 10, "1": 24, "2": 5, ... "sample_id": predicted_class }
其中 sample_id 是测试样本的索引,predicted_class 是预测的类别编号 (0-39)。
sample_id
predicted_class
仅供学习和研究使用。
A Jittor implementation of Point Cloud Transformer (PCT) for ModelNet40 classification
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
PCT (Point Cloud Transformer) for ModelNet40 Classification
概述
这是一个基于 Jittor 框架的点云分类模型实现,用于 ModelNet40 三维形状分类任务。模型采用 Point Cloud Transformer (PCT) 架构,利用自注意力机制处理点云数据。
功能特性
.npy文件加载预处理的点云数据依赖安装
文件结构
快速开始
基本使用
自定义参数
--data_dir./data--n_points1024--batch_size32--epochs200--lr0.01--seed42使用示例:
根据 ModelNet40 数据集特性,推荐的超参数配置:
核心组件
1. ModelNet40Dataset
点云数据集类,支持:
.npy文件加载点云和标签2. SA_Layer (Self-Attention Layer)
自注意力层实现:
3. PCT (Point Cloud Transformer)
完整的分类模型:
4. CosineAnnealingLR
余弦退火学习率调度器:
lr = η_min + (lr_0 - η_min) × (1 + cos(πt/T_max)) / 2训练流程
data/目录加载点云和标签pct_model.pklresult.json输出文件
1. pct_model.pkl
训练完成后保存的模型文件:
2. result.json
包含测试集预测结果的 JSON 文件,格式如下:
其中
sample_id是测试样本的索引,predicted_class是预测的类别编号 (0-39)。参考
许可证
仅供学习和研究使用。