--- license: mit library_name: pytorch tags: - point-cloud - 3d - classification - bim - aec - ifc - building-information-modeling datasets: - ifcnetcore --- # BIM-JEPA (Finetuned on IFCNetCore) Classification model finetuned from [`llama2thedog/BIM-JEPA-pretrained`](https://huggingface.co/llama2thedog/BIM-JEPA-pretrained) on the **IFCNetCore** dataset. ## Performance (test set) | Metric | Value | |---|---| | **Overall Accuracy** | **89.37%** | | Mean Class Accuracy (macro recall) | 86.63% | | Precision (macro) | 89.38% | | Recall (micro) | 89.37% | | F1 Score (macro) | 87.69% | ## 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 | IFCNetCore | | 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_ifcnetcore.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-ifcnetcore", filename="bim_jepa_finetuned_ifcnetcore.ckpt", ) model = BimJepaClassification.load_from_checkpoint(ckpt_path) model.eval() ``` ## Citation ``` in progress ``` ## License MIT