biptv3 / code /min_repro_server_pack /MIN_REPRO_README.md
YYYYYYUUU's picture
Add core reproduction code (binarization layers, PTv3, superpoint ops, min-repro pack)
7b95dc2 verified
|
Raw
History Blame Contribute Delete
4.58 kB

BiPTV3 Minimal Reproduction

This package is the lightest paper-relevant experiment bundle for the server.

  • Server path: /mnt/t2-6tb/Linpeikai/BiPTV3_CVPR
  • Default env: Aoduo
  • Default GPU: GPU 1
  • Goal: get FBPT vs BiPT comparison results without consuming large training resources
  • Principle: reuse existing checkpoints first, evaluate only what is necessary

1. Smallest useful experiment

The minimum path is:

  1. Do not retrain from scratch
  2. Reuse existing checkpoints already on the server
  3. Run one single-scene sanity check first
  4. Run Area_5 only if the single-scene outputs are normal

This gives:

  • Fastest sanity check: Area_5/office_9 only
  • Smallest quantitative check: Area_5 only
  • No need to retrain FBPT, BiPT, or FP32

2. Existing checkpoints to reuse

Root:

/mnt/t2-6tb/Linpeikai/BiPTV3_CVPR/code/pointcept_framework

Recommended four-way comparison:

  • FP32 teacher
    • config: exp/default/config.py
    • weight: exp/default/model/model_last.pth
  • FBPT reproduced baseline
    • config: exp/s3dis/rebuttal_fbpt_baseline/config.py
    • weight: exp/s3dis/rebuttal_fbpt_baseline/model/model_last.pth
  • BiPT W1A1
    • config: exp/bi_ptv3_qat_long_run/config.py
    • weight: exp/bi_ptv3_qat_long_run/model/model_best.pth
  • BiPT W2A8
    • config: exp/s3dis/qat0920_w2a8_from_fp32/config.py
    • weight: exp/s3dis/qat0920_w2a8_from_fp32/model/model_best.pth

3. Recommended execution order

Stage A: single-scene quick check

Use tools/test_wc1.py.

Why:

  • lowest GPU cost
  • fastest way to verify model loading
  • easiest way to inspect FBPT failure mode vs BiPT outputs
  • enough for the first pass

Important:

  • the current server data layout does not contain WC_1
  • the working light scene is Area_5/office_9
  • run patch_min_repro_server.sh once before the first test

Run:

bash patch_min_repro_server.sh
bash run_wc1_quick.sh

Expected output:

code/pointcept_framework/exp/min_repro_wc1/*

Stage B: Area_5 quantitative evaluation

Only run this after Stage A works.

Run:

bash run_area5_eval.sh

Expected output:

code/pointcept_framework/exp/min_repro_area5/*

This is the smallest quantitative experiment that is still directly useful for the paper.

4. Environment

Default choice:

  • conda activate Aoduo
  • use GPU 1

Quick verification:

conda activate Aoduo
python -c "import torch; print(torch.__version__)"
python -c "import torch_scatter; print('torch_scatter ok')"

If Aoduo is broken, use the fallback env:

  • pointcept-torch2.5.0-cu12.4

Repair command for the fallback env:

bash repair_env.sh

If Aoduo reports a torch_scatter ABI error, fix it with:

conda activate Aoduo
python -m pip install --no-cache-dir --force-reinstall torch-scatter -f https://data.pyg.org/whl/torch-2.6.0+cu124.html

If more PyG ABI errors appear, align the whole stack with the matching wheels:

python -m pip install --no-cache-dir --no-deps --force-reinstall \
  https://data.pyg.org/whl/torch-2.6.0%2Bcu124/pyg_lib-0.5.0%2Bpt26cu124-cp310-cp310-linux_x86_64.whl \
  https://data.pyg.org/whl/torch-2.6.0%2Bcu124/torch_cluster-1.6.3%2Bpt26cu124-cp310-cp310-linux_x86_64.whl \
  https://data.pyg.org/whl/torch-2.6.0%2Bcu124/torch_sparse-0.6.18%2Bpt26cu124-cp310-cp310-linux_x86_64.whl \
  https://data.pyg.org/whl/torch-2.6.0%2Bcu124/torch_spline_conv-1.2.2%2Bpt26cu124-cp310-cp310-linux_x86_64.whl

5. If new data is still needed

If existing checkpoints are insufficient, use the smallest extra experiment:

  1. train only one baseline
  2. train only on S3DIS
  3. run only 3 to 5 epochs
  4. validate on Area_5

Recommended order:

  1. FBPT short smoke run
  2. BiPT W1A1 short smoke run
  3. only then consider W2A8

Do not start from the full rebuttal training script.

6. Practical conclusion

For minimum cost and still-usable output:

  • best choice: reuse existing checkpoints
  • fastest script: run_wc1_quick.sh
  • smallest paper-grade quantitative script: run_area5_eval.sh
  • training is the fallback, not the first move
  • verified quick result on server:
    • FBPT repr. on Area_5/office_9: mIoU 0.0244, mAcc 0.0770, allAcc 0.2826
    • BiPT W1A1 on Area_5/office_9: mIoU 0.1972, mAcc 0.2987, allAcc 0.5459
    • BiPT W2A8 on Area_5/office_9: mIoU 0.0137, mAcc 0.0769, allAcc 0.1775
    • FP32 quick path is not directly usable with the current test_wc1.py monkeypatch because that script force-converts the model through the binary path and produces checkpoint shape mismatch