readme: ---
  language:
  - en
  license: apache-2.0
  library_name: timm
  tags:
  - mobile
  - vison
  - image-classification
  datasets:
  - imagenet-1k
  metrics:
  - accuracy
  ---
  
  # EfficientFormer-L1
  
  ## Table of Contents
  - [EfficientFormer-L1](#-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>
  
  ## Model Details
  
  <!-- Give an overview of your model, the relevant research paper, who trained it, etc.  -->
  
  EfficientFormer-L1, 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-L1 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/)
  
  </model_details>
  
  <how_to_start>
  
  ## 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-l1-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}")
  ```
  </how_to_start>
  
  <uses>
  
  ## 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>
  
  ## 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.
  
  </Limitations_and_Biases>
  
  <Training>
  
  ## 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: 12.3 M
  * GMACs: 1.3
  * Train. Epochs: 1000
  
  Trained on a cluster with NVIDIA A100 and V100 GPUs.
  
  </Training>
  
  <Eval_Results>
  
  ## Evaluation Results
  
  Top-1 Accuracy: 80.2% on ImageNet 10K
  
  </Eval_Results>
  
  <Cite>
  
  ## 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}
  }
  ```
  </Cite>