# 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 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 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: ```bash 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 bash repair_env.sh ``` If `Aoduo` reports a `torch_scatter` ABI error, fix it with: ```bash 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: ```bash 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