目录

PCT_jittor_zhangsz24

本项目用于图形学实验 PA3(点云分类),基于 pct.py 完成训练、模型保存与测试集预测导出。

1. 项目功能

  • 使用 ModelNet40 点云数据训练 PCT 点云分类网络;
  • 训练完成后导出:
    • pct_model.pkl(模型参数)
    • result.json(测试集预测结果)

2. 环境依赖

  • Python 3.10+(本项目在 Python 3.12 下运行)
  • Jittor
  • numpy
  • tqdm(可选,用于进度条)

安装依赖(示例):

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install jittor numpy tqdm

3. 数据准备

默认数据目录为 ./data,需要以下文件:

  • data/train_points.npy
  • data/train_labels.npy
  • data/test_points.npy

可用以下命令快速检查:

4. 使用方法

4.1 基线训练(推荐起点)

source .jtvenv/bin/activate

python pct.py \
  --use_cuda 1 \
  --optimizer sgd \
  --scheduler cosine \
  --augment_level basic \
  --epochs 200 \
  --batch_size 32 \
  --lr 0.01

4.2 常用参数说明

  • --use_cuda {0,1}:是否使用 GPU;
  • --optimizer {sgd,adam}:优化器选择;
  • --scheduler {cosine,warmup_cosine}:学习率调度器;
  • --augment_level {none,basic,strong}:增强强度;
  • --normalize_points:是否对每个点云做单位球归一化(默认关闭);
  • --warmup_epochs:warmup 轮数(用于 warmup_cosine)。

注:本次测试使用参数为–use_cuda 1 –optimizer sgd –scheduler cosine –augment_level basic

5. 已做的优化内容

pct.py 中,围绕“可控提升精度 + 可复现实验”做了以下优化:

  1. 增强策略分级(可控)

    • basic:随机绕 Y 轴旋转(稳定基线);
    • strong:在 basic 基础上加入轻量缩放、平移与高斯抖动;
    • none:关闭增强,用于对照实验。
  2. 优化器可切换

    • 支持 SGDAdam 两条训练路线;
    • 默认回到更稳定的 SGD 基线配置。
  3. 学习率调度可切换

    • cosine:余弦退火;
    • warmup_cosine:前期 warmup + 后期 cosine。
  4. 归一化可选

    • 增加 --normalize_points 开关,用于对每个采样点云做中心化与单位球归一化,默认关闭。

6. 目录结构

.
├── data/
│   ├── train_points.npy   #用户自己放置
│   ├── train_labels.npy   #用户自己放置
│   └── test_points.npy    #用户自己放置
├── pct.py
├── pct_model.pkl          # 训练后生成
└── result.json            # 预测后生成
关于

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

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

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