Files changed (1) hide show
  1. README.md +119 -2
README.md CHANGED
@@ -1,21 +1,138 @@
1
  ---
2
  library_name: litert
 
3
  tags:
4
  - vision
5
  - image-classification
 
 
6
  datasets:
7
  - imagenet-1k
8
  base_model:
9
  - google/efficientnet-b0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  ---
 
11
  # EfficientNet B0
12
 
13
- EfficientNet B0 model pre-trained on ImageNet-1k.
14
 
15
  ## Intended uses & limitations
16
 
17
  The model files were converted from pretrained weights from PyTorch Vision. The models may have their own licenses or terms and conditions derived from PyTorch Vision and the dataset used for training. It is your responsibility to determine whether you have permission to use the models for your use case.
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  ### BibTeX entry and citation info
20
 
21
  ```bibtex
@@ -26,4 +143,4 @@ The model files were converted from pretrained weights from PyTorch Vision. The
26
  year={2019},
27
  volume={abs/1905.11946}
28
  }
29
- ```
 
1
  ---
2
  library_name: litert
3
+ pipeline_tag: image-classification
4
  tags:
5
  - vision
6
  - image-classification
7
+ - google
8
+ - computer-vision
9
  datasets:
10
  - imagenet-1k
11
  base_model:
12
  - google/efficientnet-b0
13
+ model-index:
14
+ - name: litert-community/efficientnet_b0
15
+ results:
16
+ - task:
17
+ type: image-classification
18
+ name: Image Classification
19
+ dataset:
20
+ name: ImageNet-1k
21
+ type: imagenet-1k
22
+ config: default
23
+ split: validation
24
+ metrics:
25
+ - name: Top 1 Accuracy (Full Precision)
26
+ type: accuracy
27
+ value: 0.7765
28
+ - name: Top 5 Accuracy (Full Precision)
29
+ type: accuracy
30
+ value: 0.9353
31
+ - name: Top 1 Accuracy (Dynamic Quantized wi8 afp32)
32
+ type: accuracy
33
+ value: 0.7047
34
+ - name: Top 5 Accuracy (Dynamic Quantized wi8 afp32)
35
+ type: accuracy
36
+ value: 0.8950
37
  ---
38
+
39
  # EfficientNet B0
40
 
41
+ EfficientNet B0 model pre-trained on ImageNet-1k. Originally introduced by Tan and Le in the influential paper, [**EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks**](https://arxiv.org/abs/1905.11946) this model utilizes compound scaling to systematically balance network depth, width, and resolution, enabling superior accuracy with significantly higher efficiency than traditional architectures.
42
 
43
  ## Intended uses & limitations
44
 
45
  The model files were converted from pretrained weights from PyTorch Vision. The models may have their own licenses or terms and conditions derived from PyTorch Vision and the dataset used for training. It is your responsibility to determine whether you have permission to use the models for your use case.
46
 
47
+
48
+ ## Model description
49
+ The model was converted from a checkpoint from PyTorch Vision.
50
+
51
+ The original model has:
52
+ acc@1 (on ImageNet-1K): 77.692%
53
+ acc@5 (on ImageNet-1K): 93.532%
54
+ num_params: 5,288,548
55
+
56
+ ## How to Use
57
+
58
+ **1. Install Dependencies** Ensure your Python environment is set up with the required libraries. Run the following command in your terminal:
59
+
60
+ ```bash
61
+ pip install numpy Pillow huggingface_hub ai-edge-litert
62
+ ```
63
+
64
+ **2. Prepare Your Image** The script expects an image file to analyze. Make sure you have an image (e.g., cat.jpg or car.png) saved in the same working directory as your script.
65
+
66
+ **3. Save the Script** Create a new file named `classify.py`, paste the script below into it, and save the file:
67
+
68
+ ```python
69
+ #!/usr/bin/env python3
70
+ import argparse, json
71
+ import numpy as np
72
+ from PIL import Image
73
+ from huggingface_hub import hf_hub_download
74
+ from ai_edge_litert.compiled_model import CompiledModel
75
+
76
+ def preprocess(img: Image.Image) -> np.ndarray:
77
+ img = img.convert("RGB")
78
+ w, h = img.size
79
+ s = 256
80
+ if w < h:
81
+ img = img.resize((s, int(round(h * s / w))), Image.BICUBIC)
82
+ else:
83
+ img = img.resize((int(round(w * s / h)), s), Image.BICUBIC)
84
+ left = (img.size[0] - 224) // 2
85
+ top = (img.size[1] - 224) // 2
86
+ img = img.crop((left, top, left + 224, top + 224))
87
+
88
+ x = np.asarray(img, dtype=np.float32) / 255.0
89
+ x = (x - np.array([0.485, 0.456, 0.406], dtype=np.float32)) / np.array(
90
+ [0.229, 0.224, 0.225], dtype=np.float32
91
+ )
92
+ return np.transpose(x, (2, 0, 1))
93
+
94
+ def main():
95
+ ap = argparse.ArgumentParser()
96
+ ap.add_argument("--image", required=True)
97
+ args = ap.parse_args()
98
+
99
+ model_path = hf_hub_download("litert-community/efficientnet_b0", "efficientnet_b0.tflite")
100
+ labels_path = hf_hub_download(
101
+ "huggingface/label-files", "imagenet-1k-id2label.json", repo_type="dataset"
102
+ )
103
+ with open(labels_path, "r", encoding="utf-8") as f:
104
+ id2label = {int(k): v for k, v in json.load(f).items()}
105
+
106
+ img = Image.open(args.image)
107
+ x = preprocess(img)
108
+
109
+ model = CompiledModel.from_file(model_path)
110
+ inp = model.create_input_buffers(0)
111
+ out = model.create_output_buffers(0)
112
+
113
+ inp[0].write(x)
114
+ model.run_by_index(0, inp, out)
115
+
116
+ req = model.get_output_buffer_requirements(0, 0)
117
+ y = out[0].read(req["buffer_size"] // np.dtype(np.float32).itemsize, np.float32)
118
+
119
+ pred = int(np.argmax(y))
120
+ label = id2label.get(pred, f"class_{pred}")
121
+
122
+
123
+ print(f"Top-1 class index: {pred}")
124
+ print(f"Top-1 label: {label}")
125
+ if __name__ == "__main__":
126
+ main()
127
+ ```
128
+
129
+ **4. Execute the Python Script** Run the below command:
130
+
131
+ ```bash
132
+ python classify.py --image cat.jpg
133
+ ```
134
+
135
+
136
  ### BibTeX entry and citation info
137
 
138
  ```bibtex
 
143
  year={2019},
144
  volume={abs/1905.11946}
145
  }
146
+ ```