timm
/

Image Classification
timm
PyTorch
Safetensors
Transformers
rwightman HF Staff commited on
Commit
0ffe294
·
1 Parent(s): 9de849d
Files changed (4) hide show
  1. README.md +103 -0
  2. config.json +33 -0
  3. model.safetensors +3 -0
  4. pytorch_model.bin +3 -0
README.md ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ tags:
3
+ - image-classification
4
+ - timm
5
+ library_tag: timm
6
+ license: apache-2.0
7
+ datasets:
8
+ - imagenet-21k
9
+ ---
10
+ # Model card for mixer_l16_224.goog_in21k
11
+
12
+ A MLP-Mixer image classification model. Trained on ImageNet-21k by paper authors.
13
+
14
+ ## Model Details
15
+ - **Model Type:** Image classification / feature backbone
16
+ - **Model Stats:**
17
+ - Params (M): 229.6
18
+ - GMACs: 44.6
19
+ - Activations (M): 41.7
20
+ - Image size: 224 x 224
21
+ - **Papers:**
22
+ - MLP-Mixer: An all-MLP Architecture for Vision: https://arxiv.org/abs/2105.01601
23
+ - **Original:** https://github.com/google-research/vision_transformers
24
+ - **Dataset:** ImageNet-21k
25
+
26
+ ## Model Usage
27
+ ### Image Classification
28
+ ```python
29
+ from urllib.request import urlopen
30
+ from PIL import Image
31
+ import timm
32
+
33
+ img = Image.open(urlopen(
34
+ 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
35
+ ))
36
+
37
+ model = timm.create_model('mixer_l16_224.goog_in21k', pretrained=True)
38
+ model = model.eval()
39
+
40
+ # get model specific transforms (normalization, resize)
41
+ data_config = timm.data.resolve_model_data_config(model)
42
+ transforms = timm.data.create_transform(**data_config, is_training=False)
43
+
44
+ output = model(transforms(img).unsqueeze(0)) # unsqueeze single image into batch of 1
45
+
46
+ top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)
47
+ ```
48
+
49
+ ### Image Embeddings
50
+ ```python
51
+ from urllib.request import urlopen
52
+ from PIL import Image
53
+ import timm
54
+
55
+ img = Image.open(urlopen(
56
+ 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
57
+ ))
58
+
59
+ model = timm.create_model(
60
+ 'mixer_l16_224.goog_in21k',
61
+ pretrained=True,
62
+ num_classes=0, # remove classifier nn.Linear
63
+ )
64
+ model = model.eval()
65
+
66
+ # get model specific transforms (normalization, resize)
67
+ data_config = timm.data.resolve_model_data_config(model)
68
+ transforms = timm.data.create_transform(**data_config, is_training=False)
69
+
70
+ output = model(transforms(img).unsqueeze(0)) # output is (batch_size, num_features) shaped tensor
71
+
72
+ # or equivalently (without needing to set num_classes=0)
73
+
74
+ output = model.forward_features(transforms(img).unsqueeze(0))
75
+ # output is unpooled, a (1, 196, 1024) shaped tensor
76
+
77
+ output = model.forward_head(output, pre_logits=True)
78
+ # output is a (1, num_features) shaped tensor
79
+ ```
80
+
81
+ ## Model Comparison
82
+ Explore the dataset and runtime metrics of this model in timm [model results](https://github.com/huggingface/pytorch-image-models/tree/main/results).
83
+
84
+ ## Citation
85
+ ```bibtex
86
+ @article{tolstikhin2021mixer,
87
+ title={MLP-Mixer: An all-MLP Architecture for Vision},
88
+ author={Tolstikhin, Ilya and Houlsby, Neil and Kolesnikov, Alexander and Beyer, Lucas and Zhai, Xiaohua and Unterthiner, Thomas and Yung, Jessica and Steiner, Andreas and Keysers, Daniel and Uszkoreit, Jakob and Lucic, Mario and Dosovitskiy, Alexey},
89
+ journal={arXiv preprint arXiv:2105.01601},
90
+ year={2021}
91
+ }
92
+ ```
93
+ ```bibtex
94
+ @misc{rw2019timm,
95
+ author = {Ross Wightman},
96
+ title = {PyTorch Image Models},
97
+ year = {2019},
98
+ publisher = {GitHub},
99
+ journal = {GitHub repository},
100
+ doi = {10.5281/zenodo.4414861},
101
+ howpublished = {\url{https://github.com/huggingface/pytorch-image-models}}
102
+ }
103
+ ```
config.json ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architecture": "mixer_l16_224",
3
+ "num_classes": 21843,
4
+ "num_features": 1024,
5
+ "global_pool": "avg",
6
+ "pretrained_cfg": {
7
+ "tag": "goog_in21k",
8
+ "custom_load": false,
9
+ "input_size": [
10
+ 3,
11
+ 224,
12
+ 224
13
+ ],
14
+ "fixed_input_size": true,
15
+ "interpolation": "bicubic",
16
+ "crop_pct": 0.875,
17
+ "crop_mode": "center",
18
+ "mean": [
19
+ 0.5,
20
+ 0.5,
21
+ 0.5
22
+ ],
23
+ "std": [
24
+ 0.5,
25
+ 0.5,
26
+ 0.5
27
+ ],
28
+ "num_classes": 21843,
29
+ "pool_size": null,
30
+ "first_conv": "stem.proj",
31
+ "classifier": "head"
32
+ }
33
+ }
model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:71499fb37cd627f441b6cbcecd4ba1b95bef2f7db4036b85c7b33b1581d362ff
3
+ size 918270060
pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ffc8c0b689891627f359bc08467960e3ef342989909b117802c8f6db074cffdf
3
+ size 918351333