DavidHanSZ commited on
Commit
5939a91
·
verified ·
1 Parent(s): e170e45

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +50 -13
README.md CHANGED
@@ -1,26 +1,63 @@
1
  ---
 
2
  tags:
3
- - ml-intern
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  ---
5
 
6
- # DavidHanSZ/pointnet-modelnet40
7
 
8
- <!-- ml-intern-provenance -->
9
- ## Generated by ML Intern
10
 
11
- This model repository was generated by [ML Intern](https://github.com/huggingface/ml-intern), an agent for machine learning research and development on the Hugging Face Hub.
12
 
13
- - Try ML Intern: https://smolagents-ml-intern.hf.space
14
- - Source code: https://github.com/huggingface/ml-intern
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
 
16
  ## Usage
17
 
18
  ```python
19
- from transformers import AutoModelForCausalLM, AutoTokenizer
20
-
21
- model_id = "DavidHanSZ/pointnet-modelnet40"
22
- tokenizer = AutoTokenizer.from_pretrained(model_id)
23
- model = AutoModelForCausalLM.from_pretrained(model_id)
 
 
 
24
  ```
25
 
26
- For non-causal architectures, replace `AutoModelForCausalLM` with the appropriate `AutoModel` class.
 
 
 
1
  ---
2
+ license: mit
3
  tags:
4
+ - pointnet
5
+ - modelnet40
6
+ - 3d-classification
7
+ - point-cloud
8
+ - pytorch
9
+ metrics:
10
+ - accuracy
11
+ model-index:
12
+ - name: pointnet-modelnet40
13
+ results:
14
+ - task:
15
+ type: 3d-shape-classification
16
+ dataset:
17
+ type: modelnet40
18
+ name: ModelNet40
19
+ metrics:
20
+ - type: accuracy
21
+ value: 83.83
22
  ---
23
 
24
+ # PointNet for ModelNet40 Classification
25
 
26
+ Reimplementation of [PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation](https://arxiv.org/abs/1612.00593) (Qi et al., 2017).
 
27
 
28
+ ## Architecture
29
 
30
+ Exact architecture from the paper (Appendix C):
31
+ - Input Transform (T-Net 3×3): MLP(64,128,1024) → max pool → FC(512,256) → 3×3
32
+ - Shared MLP(64,64) → Feature Transform (T-Net 64×64) → MLP(64,128,1024)
33
+ - Global max pool → FC(512,256,40) + dropout(0.3)
34
+ - Orthogonal regularization (λ=0.001) on both T-Nets
35
+
36
+ ## Training Recipe (from paper)
37
+
38
+ | Parameter | Value |
39
+ |-----------|-------|
40
+ | Points sampled | 1024 (uniform, normalized to unit sphere) |
41
+ | Augmentation | Random up-axis rotation + Gaussian jitter (σ=0.02) |
42
+ | Optimizer | Adam, lr=0.001, β₁=0.9 |
43
+ | Batch size | 32 |
44
+ | LR schedule | ÷2 every 20 epochs |
45
+ | Epochs trained | 250 |
46
+ | Best test accuracy | **83.83%** (epoch 238) |
47
 
48
  ## Usage
49
 
50
  ```python
51
+ import torch
52
+ # Copy the PointNetClassification class from pointnet_modelnet40.py
53
+ model = PointNetClassification(num_classes=40)
54
+ model.load_state_dict(torch.load('pytorch_model.bin'))
55
+ model.eval()
56
+
57
+ # Input: (B, 3, 1024) point cloud normalized to unit sphere
58
+ # Output: (B, 40) logits
59
  ```
60
 
61
+ ## Dataset
62
+
63
+ Trained on [jxie/modelnet40-2048](https://huggingface.co/datasets/jxie/modelnet40-2048) — 9,840 train / 2,468 test samples across 40 object categories.