Update README.md
# PCT ModelNet40 Classification
基于 Jittor 的 PCT(Point Cloud Transformer)点云分类代码,用于 ModelNet40 三维形状分类任务。代码包含数据加载、训练、验证和测试集推理流程,预测结果保存为 result.json。
result.json
. ├── src/ │ └── pct.py ├── data/ │ └── README.md ├── outputs/ ├── NOTICE ├── requirements.txt ├── LICENSE ├── .gitignore └── README.md
src/
data/
outputs/
NOTICE
LICENSE
建议使用 Python 3.8 或更高版本,并准备支持 CUDA 的运行环境。
pip install -r requirements.txt
代码默认启用 GPU:
jt.flags.use_cuda = 1
如需在 CPU 环境运行,请在代码中将其改为 0。
0
将预处理后的 ModelNet40 数据放入 data/ 目录:
data/ train_points.npy train_labels.npy test_points.npy categories.txt
数据根目录通过 --data_dir 指定,默认值为 ./data。
--data_dir
./data
从项目根目录运行:
python src/pct.py --data_dir ./data --output_dir ./outputs --n_points 2048 --batch_size 16 --epochs 300 --lr 0.001 --seed 42
常用参数:
--output_dir
./outputs
--n_points
2048
--batch_size
16
--epochs
300
--lr
0.001
--seed
42
--mode
train
infer
--ckpt_path
训练命令会在结束后自动对测试集生成预测结果。也可以使用已有权重单独推理:
python src/pct.py --mode infer --data_dir ./data --output_dir ./outputs --ckpt_path ./outputs/pct_model_best.pkl --vote_num 10
输出文件:
outputs/config.json outputs/command.txt outputs/train.log outputs/pct_model_best.pkl outputs/result.json
result.json 格式示例:
{ "0": 12, "1": 5 }
键为测试样本编号,值为预测类别。
训练过程中使用验证集分类准确率(accuracy)选择最佳模型:
accuracy = 正确预测样本数 / 总样本数
测试集结果通过多次旋转投票得到,--vote_num 控制投票次数。由于随机初始化、数据增强、训练轮数和硬件环境不同,本地结果可能与线上提交结果存在小幅差异。
--vote_num
代码提供 --seed 参数,并在 NumPy 与 Jittor 中统一设置随机种子。每次运行会自动在 --output_dir 中保存实际配置、运行命令和训练日志:config.json、command.txt、train.log。
config.json
command.txt
train.log
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
# PCT ModelNet40 Classification
基于 Jittor 的 PCT(Point Cloud Transformer)点云分类代码,用于 ModelNet40 三维形状分类任务。代码包含数据加载、训练、验证和测试集推理流程,预测结果保存为
result.json。目录结构
src/:核心代码data/:数据说明,不提交大型数据文件outputs/:训练日志、模型权重和预测结果,默认不提交NOTICE:第三方依赖与来源说明LICENSE:开源许可证环境安装
建议使用 Python 3.8 或更高版本,并准备支持 CUDA 的运行环境。
代码默认启用 GPU:
如需在 CPU 环境运行,请在代码中将其改为
0。数据准备
将预处理后的 ModelNet40 数据放入
data/目录:数据根目录通过
--data_dir指定,默认值为./data。训练
从项目根目录运行:
常用参数:
--data_dir:数据目录,默认./data--output_dir:输出目录,默认./outputs--n_points:每个样本采样点数,默认2048--batch_size:批大小,默认16--epochs:训练轮数,默认300--lr:学习率,默认0.001--seed:随机种子,默认42--mode:运行模式,可选train或infer,默认train--ckpt_path:推理时加载的模型权重路径评测/推理
训练命令会在结束后自动对测试集生成预测结果。也可以使用已有权重单独推理:
输出文件:
result.json格式示例:键为测试样本编号,值为预测类别。
结果说明
训练过程中使用验证集分类准确率(accuracy)选择最佳模型:
测试集结果通过多次旋转投票得到,
--vote_num控制投票次数。由于随机初始化、数据增强、训练轮数和硬件环境不同,本地结果可能与线上提交结果存在小幅差异。可复现说明
代码提供
--seed参数,并在 NumPy 与 Jittor 中统一设置随机种子。每次运行会自动在--output_dir中保存实际配置、运行命令和训练日志:config.json、command.txt、train.log。第三方依赖