--- license: mit library_name: pytorch tags: - point-cloud - 3d - classification - bim - aec - building-information-modeling datasets: - bimgeom --- # BIM-JEPA (Finetuned on BIMGEOM) Classification model finetuned from [`llama2thedog/BIM-JEPA-pretrained`](https://huggingface.co/llama2thedog/BIM-JEPA-pretrained) on the **BIMGEOM** dataset. ## Performance (test set) | Metric | Value | |---|---| | **Overall Accuracy** | **92.43%** | | Mean Class Accuracy | 89.53% | | Macro Precision / Recall / F1 | 89.05 / 89.53 / 89.20 | | Weighted Precision / Recall / F1 | 92.57 / 92.43 / 92.44 | ## Paper **Self-supervised learning for BIM element classification using a joint embedding predictive architecture** Jack Wei Lun Shi, Wawan Solihin, Yufeng Weng, Yimin Zhao, Leong Hien Poh, Justin K.W. Yeoh *Automation in Construction* - [GitHub repo](https://github.com/jackswl/bim-jepa) (code + configs) - [Project page](https://jackswl.github.io/bim-jepa/) - [Pretrained base](https://huggingface.co/llama2thedog/BIM-JEPA-pretrained) ## Architecture - **Backbone**: BIM-JEPA encoder (12-layer Transformer, 384 dim, 6 heads) — initialized from the pretrained checkpoint - **Head**: MLP classifier, 256 hidden dim, mean+max pooling, 0.5 dropout - **Loss**: Cross-entropy with label smoothing (0.1) - **Encoder schedule**: Frozen for the first 175 epochs, then unfrozen and finetuned end-to-end ## Training | | | |---|---| | Dataset | BIMGEOM | | Input | 4096 points per object | | Augmentations | Scale, rotate (all axes), translate | | Epochs | 350 | | Batch size | 32 | | Optimizer | AdamW (head lr=1e-3, encoder lr=1e-4, weight decay 0.05) | | Schedule | Linear warmup (10 epochs) + cosine decay | | Precision | bf16-mixed | Full training hyperparameters are in [`hparams.yaml`](./hparams.yaml). ## Files | File | Size | Description | |---|---|---| | `bim_jepa_finetuned_bimgeom.ckpt` | 256 MB | PyTorch Lightning checkpoint | | `hparams.yaml` | 2 KB | Training hyperparameters | ## Usage Clone the [GitHub repo](https://github.com/jackswl/bim-jepa) first to get the model code, then: ```python from huggingface_hub import hf_hub_download from bimjepa.models.classification import BimJepaClassification ckpt_path = hf_hub_download( repo_id="llama2thedog/BIM-JEPA-finetuned-bimgeom", filename="bim_jepa_finetuned_bimgeom.ckpt", ) model = BimJepaClassification.load_from_checkpoint(ckpt_path) model.eval() ``` ## Citation ``` in progress ``` ## License MIT