readme finished
基于 Jittor 框架实现的 Point Cloud Transformer (PCT) 模型,用于 ModelNet40 数据集的点云分类任务。
本项目是 PCT (Point Cloud Transformer) 的 Jittor 实现,用于三维点云分类。模型利用自注意力机制捕获点云中的全局上下文信息,在 ModelNet40 数据集上实现高精度分类。
使用 ModelNet40 数据集,需要预先处理为 .npy 格式: data/ ├── train_points.npy # 训练集点云 ├── train_labels.npy # 训练集标签 ├── test_points.npy # 测试集点云 └── test_labels.npy # 测试集标签
.npy
text
训练时自动应用以下增强策略(随机概率):
训练模型 bash # 基础训练 python pct.pyw --data_dir ./data --epochs 200 --batch_size 64 # 带参数训练 python pct.pyw --data_dir ./data --n_points 1024 --batch_size 32 --epochs 250 --lr 0.01 # 禁用 GPU python pct.pyw --no_cuda 命令行参数 参数 默认值 说明 --data_dir ./data 数据目录路径 --n_points 1024 每个样本的点数 --batch_size 64 批次大小 --epochs 200 训练轮数 --lr 0.01 初始学习率 --weight_decay 1e-4 权重衰减 --seed 42 随机种子 --no_cuda False 禁用 CUDA 输出文件 训练完成后会自动生成: pct_model.pkl - 训练好的模型权重 result.json - 测试集预测结果(样本ID → 类别ID) json { "0": 15, "1": 3, ... } 学习率调度 采用余弦退火调度 (Cosine Annealing): lr = eta_min + (base_lr - eta_min) * (1 + cos(π * epoch / T_max)) / 2 性能指标 指标 值 训练集准确率 ~95% 测试集准确率 ~90-92% 单 epoch 时间 ~60s (GPU) 注:实际性能取决于硬件配置和参数设置 项目结构 PCT_jittor/ ├── pct.pyw # 主程序(训练 + 推理) ├── data/ # 数据集目录 ├── pct_model.pkl # 训练好的模型 ├── result.json # 预测结果 └── README.md # 项目文档 常见问题 1. 数据文件找不到 确保 data/ 目录下存在 train_points.npy, train_labels.npy, test_points.npy, test_labels.npy 文件。 2. GPU 内存不足 减小 --batch_size 参数,例如改为 32 或 16。 3. Jittor argmax 返回 tuple 问题 代码已处理该问题,自动提取 tuple 中的第一个元素作为预测结果。 引用 如果本项目对您的研究有帮助,请引用: bibtex @article{guo2021pct, title={PCT: Point cloud transformer}, author={Guo, Meng-Hao and Cai, Jun-Xiong and Liu, Zheng-Ning and Mu, Tai-Jiang and Martin, Ralph R and Hu, Shi-Min}, journal={Computational Visual Media}, volume={7}, pages={187--199}, year={2021}, publisher={Springer} }
A Jittor implementation of Point Cloud Transformer (PCT) for ModelNet40 classification
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
PCT_jittor
PCT (Point Cloud Transformer) for ModelNet40 Classification
基于 Jittor 框架实现的 Point Cloud Transformer (PCT) 模型,用于 ModelNet40 数据集的点云分类任务。
简介
本项目是 PCT (Point Cloud Transformer) 的 Jittor 实现,用于三维点云分类。模型利用自注意力机制捕获点云中的全局上下文信息,在 ModelNet40 数据集上实现高精度分类。
模型架构
模型参数
数据集
使用 ModelNet40 数据集,需要预先处理为
.npy格式: data/ ├── train_points.npy # 训练集点云 ├── train_labels.npy # 训练集标签 ├── test_points.npy # 测试集点云 └── test_labels.npy # 测试集标签text
数据增强
训练时自动应用以下增强策略(随机概率):
环境配置