--- language: - en license: apache-2.0 library_name: timm tags: - mobile - vison - image-classification datasets: - imagenet-1k metrics: - accuracy --- # EfficientFormer-L3 ## Table of Contents - [EfficientFormer-L3](#-model_id--defaultmymodelname-true) - [Table of Contents](#table-of-contents) - [Model Details](#model-details) - [How to Get Started with the Model](#how-to-get-started-with-the-model) - [Uses](#uses) - [Direct Use](#direct-use) - [Downstream Use](#downstream-use) - [Misuse and Out-of-scope Use](#misuse-and-out-of-scope-use) - [Limitations and Biases](#limitations-and-biases) - [Training](#training) - [Training Data](#training-data) - [Training Procedure](#training-procedure) - [Evaluation Results](#evaluation-results) - [Environmental Impact](#environmental-impact) - [Citation Information](#citation-information) ## Model Details EfficientFormer-L3, developed by [Snap Research](https://github.com/snap-research), is one of three EfficientFormer models. The EfficientFormer models were released as part of an effort to prove that properly designed transformers can reach extremely low latency on mobile devices while maintaining high performance. This checkpoint of EfficientFormer-L3 was trained for 1000 epochs. - Developed by: Yanyu Li, Geng Yuan, Yang Wen, Eric Hu, Georgios Evangelidis, Sergey Tulyakov, Yanzhi Wang, Jian Ren - Language(s): English - License: This model is licensed under the apache-2.0 license - Resources for more information: - [Research Paper](https://arxiv.org/abs/2206.01191) - [GitHub Repo](https://github.com/snap-research/EfficientFormer/) ## How to Get Started with the Model Use the code below to get started with the model. ```python import requests import torch from PIL import Image from transformers import EfficientFormerImageProcessor, EfficientFormerForImageClassificationWithTeacher # Load a COCO image of two cats to test the model url = "http://images.cocodataset.org/val2017/000000039769.jpg" image = Image.open(requests.get(url, stream=True).raw) # Load preprocessor and pretrained model model_name = "huggingface/efficientformer-l3-300" processor = EfficientFormerImageProcessor.from_pretrained(model_name) model = EfficientFormerForImageClassificationWithTeacher.from_pretrained(model_name) # Preprocess input image inputs = processor(images=image, return_tensors="pt") # Inference with torch.no_grad(): outputs = model(**inputs) # Print the top ImageNet1k class prediction logits = outputs.logits scores = torch.nn.functional.softmax(logits, dim=1) top_pred_class = torch.argmax(scores, dim=1) print(f"Predicted class: {top_pred_class}") ``` ## Uses #### Direct Use This model can be used for image classification and semantic segmentation. On mobile devices (the model was tested on iPhone 12), the CoreML checkpoints will perform these tasks with low latency. ## Limitations and Biases Though most designs in EfficientFormer are general-purposed, e.g., dimension- consistent design and 4D block with CONV-BN fusion, the actual speed of EfficientFormer may vary on other platforms. For instance, if GeLU is not well supported while HardSwish is efficiently implemented on specific hardware and compiler, the operator may need to be modified accordingly. The proposed latency-driven slimming is simple and fast. However, better results may be achieved if search cost is not a concern and an enumeration-based brute search is performed. Since the model was trained on Imagenet-1K, the [biases embedded in that dataset](https://huggingface.co/datasets/imagenet-1k#considerations-for-using-the-data) will be reflected in the EfficientFormer models. ## Training #### Training Data This model was trained on ImageNet-1K. See the [data card](https://huggingface.co/datasets/imagenet-1k) for additional information. #### Training Procedure * Parameters: 31.4 M * Train. Epochs: 1000 Trained on a cluster with NVIDIA A100 and V100 GPUs. ## Evaluation Results Top-1 Accuracy: 82.4% on ImageNet 10K Latency: 3.0ms ## Citation Information ```bibtex @article{li2022efficientformer, title={EfficientFormer: Vision Transformers at MobileNet Speed}, author={Li, Yanyu and Yuan, Geng and Wen, Yang and Hu, Eric and Evangelidis, Georgios and Tulyakov, Sergey and Wang, Yanzhi and Ren, Jian}, journal={arXiv preprint arXiv:2206.01191}, year={2022} } ```