Instructions to use litert-community/efficientnet_b6 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LiteRT
How to use litert-community/efficientnet_b6 with LiteRT:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
| library_name: litert | |
| pipeline_tag: image-classification | |
| tags: | |
| - vision | |
| - image-classification | |
| - computer-vision | |
| datasets: | |
| - imagenet-1k | |
| base_model: | |
| - google/efficientnet-b6 | |
| model-index: | |
| - name: litert-community/efficientnet_b6 | |
| results: | |
| - task: | |
| type: image-classification | |
| name: Image Classification | |
| dataset: | |
| name: ImageNet-1k | |
| type: imagenet-1k | |
| config: default | |
| split: validation | |
| metrics: | |
| - name: Top 1 Accuracy (Full Precision) | |
| type: accuracy | |
| value: 0.8400 | |
| - name: Top 5 Accuracy (Full Precision) | |
| type: accuracy | |
| value: 0.9691 | |
| - name: Top 1 Accuracy (Dynamic Quantized wi8 afp32) | |
| type: accuracy | |
| value: 0.8383 | |
| - name: Top 5 Accuracy (Dynamic Quantized wi8 afp32) | |
| type: accuracy | |
| value: 0.9677 | |
| # EfficientNet B6 | |
| EfficientNet B6 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. | |
| ## Model description | |
| The model was converted from a checkpoint from PyTorch Vision. | |
| The original model has: | |
| acc@1 (on ImageNet-1K): 84.008% | |
| acc@5 (on ImageNet-1K): 96.916% | |
| num_params: 43,040,704 | |
| ## How to Use | |
| **1. Install Dependencies** Ensure your Python environment is set up with the required libraries. Run the following command in your terminal: | |
| ```bash | |
| pip install numpy Pillow huggingface_hub ai-edge-litert | |
| ``` | |
| **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. | |
| **3. Save the Script** Create a new file named `classify.py`, paste the script below into it, and save the file: | |
| ```python | |
| #!/usr/bin/env python3 | |
| import argparse, json | |
| import numpy as np | |
| from PIL import Image | |
| from huggingface_hub import hf_hub_download | |
| from ai_edge_litert.compiled_model import CompiledModel | |
| def preprocess(img: Image.Image) -> np.ndarray: | |
| img = img.convert("RGB") | |
| w, h = img.size | |
| s = 528 | |
| if w < h: | |
| img = img.resize((s, int(round(h * s / w))), Image.BICUBIC) | |
| else: | |
| img = img.resize((int(round(w * s / h)), s), Image.BICUBIC) | |
| left = (img.size[0] - 528) // 2 | |
| top = (img.size[1] - 528) // 2 | |
| img = img.crop((left, top, left + 528, top + 528)) | |
| x = np.asarray(img, dtype=np.float32) / 255.0 | |
| x = (x - np.array([0.485, 0.456, 0.406], dtype=np.float32)) / np.array( | |
| [0.229, 0.224, 0.225], dtype=np.float32 | |
| ) | |
| return np.transpose(x, (2, 0, 1)) | |
| def main(): | |
| ap = argparse.ArgumentParser() | |
| ap.add_argument("--image", required=True) | |
| args = ap.parse_args() | |
| model_path = hf_hub_download("litert-community/efficientnet_b6", "efficientnet_b6.tflite") | |
| labels_path = hf_hub_download( | |
| "huggingface/label-files", "imagenet-1k-id2label.json", repo_type="dataset" | |
| ) | |
| with open(labels_path, "r", encoding="utf-8") as f: | |
| id2label = {int(k): v for k, v in json.load(f).items()} | |
| img = Image.open(args.image) | |
| x = preprocess(img) | |
| model = CompiledModel.from_file(model_path) | |
| inp = model.create_input_buffers(0) | |
| out = model.create_output_buffers(0) | |
| inp[0].write(x) | |
| model.run_by_index(0, inp, out) | |
| req = model.get_output_buffer_requirements(0, 0) | |
| y = out[0].read(req["buffer_size"] // np.dtype(np.float32).itemsize, np.float32) | |
| pred = int(np.argmax(y)) | |
| label = id2label.get(pred, f"class_{pred}") | |
| print(f"Top-1 class index: {pred}") | |
| print(f"Top-1 label: {label}") | |
| if __name__ == "__main__": | |
| main() | |
| ``` | |
| **4. Execute the Python Script** Run the below command: | |
| ```bash | |
| python classify.py --image cat.jpg | |
| ``` | |
| ### BibTeX entry and citation info | |
| ```bibtex | |
| @article{Tan2019EfficientNetRM, | |
| title={EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks}, | |
| author={Mingxing Tan and Quoc V. Le}, | |
| journal={ArXiv}, | |
| year={2019}, | |
| volume={abs/1905.11946} | |
| } | |
| ``` | |