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:
- Do not retrain from scratch
- Reuse existing checkpoints already on the server
- Run one single-scene sanity check first
- Run
Area_5only if the single-scene outputs are normal
This gives:
- Fastest sanity check:
Area_5/office_9only - Smallest quantitative check:
Area_5only - No need to retrain
FBPT,BiPT, orFP32
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
- config:
- FBPT reproduced baseline
- config:
exp/s3dis/rebuttal_fbpt_baseline/config.py - weight:
exp/s3dis/rebuttal_fbpt_baseline/model/model_last.pth
- config:
- BiPT W1A1
- config:
exp/bi_ptv3_qat_long_run/config.py - weight:
exp/bi_ptv3_qat_long_run/model/model_best.pth
- config:
- BiPT W2A8
- config:
exp/s3dis/qat0920_w2a8_from_fp32/config.py - weight:
exp/s3dis/qat0920_w2a8_from_fp32/model/model_best.pth
- config:
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.shonce 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:
- train only one baseline
- train only on S3DIS
- run only 3 to 5 epochs
- validate on
Area_5
Recommended order:
- FBPT short smoke run
- BiPT W1A1 short smoke run
- 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.onArea_5/office_9:mIoU 0.0244,mAcc 0.0770,allAcc 0.2826BiPT W1A1onArea_5/office_9:mIoU 0.1972,mAcc 0.2987,allAcc 0.5459BiPT W2A8onArea_5/office_9:mIoU 0.0137,mAcc 0.0769,allAcc 0.1775FP32quick path is not directly usable with the currenttest_wc1.pymonkeypatch because that script force-converts the model through the binary path and produces checkpoint shape mismatch