{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/an-improved-one-millisecond-mobile-backbone","title":"MobileOne: An Improved One millisecond Mobile Backbone","arxiv_id":"2206.04040","date":"2022-06-08","proceeding":"CVPR 2023 1","authors":["Pavan Kumar Anasosalu Vasu","James Gabriel","Jeff Zhu","Oncel Tuzel","Anurag Ranjan"],"abstract":"Efficient neural network backbones for mobile devices are often optimized for metrics such as FLOPs or parameter count. However, these metrics may not correlate well with latency of the network when deployed on a mobile device. Therefore, we perform extensive analysis of different metrics by deploying several mobile-friendly networks on a mobile device. We identify and analyze architectural and optimization bottlenecks in recent efficient neural networks and provide ways to mitigate these bottlenecks. To this end, we design an efficient backbone MobileOne, with variants achieving an inference time under 1 ms on an iPhone12 with 75.9% top-1 accuracy on ImageNet. We show that MobileOne achieves state-of-the-art performance within the efficient architectures while being many times faster on mobile. Our best model obtains similar performance on ImageNet as MobileFormer while being 38x faster. Our model obtains 2.3% better top-1 accuracy on ImageNet than EfficientNet at similar latency. Furthermore, we show that our model generalizes to multiple tasks - image classification, object detection, and semantic segmentation with significant improvements in latency and accuracy as compared to existing efficient architectures when deployed on a mobile device. Code and models are available at https://github.com/apple/ml-mobileone","url_abs":"https://arxiv.org/abs/2206.04040v2","url_pdf":"https://arxiv.org/pdf/2206.04040v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"an-improved-one-millisecond-mobile-backbone","repo_url":"https://github.com/apple/ml-mobileone","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"an-improved-one-millisecond-mobile-backbone","repo_url":"https://github.com/rwightman/pytorch-image-models","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"an-improved-one-millisecond-mobile-backbone","repo_url":"https://github.com/chengpengchen/repghost","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"an-improved-one-millisecond-mobile-backbone","repo_url":"https://github.com/federicopozzi33/MobileOne-PyTorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"an-improved-one-millisecond-mobile-backbone","repo_url":"https://github.com/frgfm/Holocron","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"an-improved-one-millisecond-mobile-backbone","repo_url":"https://github.com/james77777778/keras-image-models","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"an-improved-one-millisecond-mobile-backbone","repo_url":"https://github.com/yakhyo/gaze-estimation","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"an-improved-one-millisecond-mobile-backbone","repo_url":"https://github.com/BR-IDL/PaddleViT/tree/develop/image_classification/MobileOne","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":null},{"paper_slug":"an-improved-one-millisecond-mobile-backbone","repo_url":"https://github.com/PaddlePaddle/PaddleDetection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"paddle","reach":null},{"paper_slug":"an-improved-one-millisecond-mobile-backbone","repo_url":"https://gitlab.com/birder/birder","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"efficient-neural-network","task_name":"Efficient Neural Network"},{"task_slug":"gaze-estimation","task_name":"Gaze Estimation"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"image-segmentation","task_name":"Image Segmentation"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"image-classification","task_name":"image-classification"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"depthwise-convolution","method_name":"Depthwise Convolution"},{"method_slug":"depthwise-separable-convolution","method_name":"Depthwise Separable Convolution"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"inverted-residual-block","method_name":"Inverted Residual Block"},{"method_slug":"pointwise-convolution","method_name":"Pointwise Convolution"},{"method_slug":"rmsprop","method_name":"RMSProp"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"sigmoid-activation","method_name":"Sigmoid Activation"},{"method_slug":"squeeze-and-excitation-block","method_name":"Squeeze-and-Excitation Block"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"MobileOne-S4 (distill)","rank_in_archive_order":641,"of":1060,"metrics":{"GFLOPs":"2.9","Top 1 Accuracy":"81.4%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"MobileOne-S4","rank_in_archive_order":760,"of":1060,"metrics":{"GFLOPs":"2.978","Number of params":"14.8M","Top 1 Accuracy":"79.4%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"MobileOne-S2 (distill)","rank_in_archive_order":778,"of":1060,"metrics":{"Top 1 Accuracy":"79.1%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"MobileOne-S3","rank_in_archive_order":853,"of":1060,"metrics":{"GFLOPs":"1.896","Number of params":"10.1M","Top 1 Accuracy":"78.1%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"MobileOne-S2","rank_in_archive_order":876,"of":1060,"metrics":{"GFLOPs":"1.299","Number of params":"7.8M","Top 1 Accuracy":"77.4%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"MobileOne-S1","rank_in_archive_order":928,"of":1060,"metrics":{"GFLOPs":"0.825","Number of params":"4.8M","Top 1 Accuracy":"75.9%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"MobileOne-S0 (distill)","rank_in_archive_order":996,"of":1060,"metrics":{"GFLOPs":"0.275","Number of params":"2.1M","Top 1 Accuracy":"72.5%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-imagenet","task":"Image Classification","dataset":"ImageNet","model":"MobileOne-S0","rank_in_archive_order":1010,"of":1060,"metrics":{"Number of params":"2.1M","Top 1 Accuracy":"71.4%"},"uses_additional_data":false},{"leaderboard":"/sota/image-segmentation-on-imagenet","task":"Image Segmentation","dataset":"ImageNet","model":"MobileOne-S0","rank_in_archive_order":1,"of":1,"metrics":{"GFLOPs":"0.275"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2206.04040","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2206.04040"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rwightman/pytorch-image-models","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/james77777778/keras-image-models","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/frgfm/Holocron","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/BR-IDL/PaddleViT/tree/develop/image_classification/MobileOne","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yakhyo/gaze-estimation","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/federicopozzi33/MobileOne-PyTorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/PaddlePaddle/PaddleDetection","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chengpengchen/repghost","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://gitlab.com/birder/birder","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/apple/ml-mobileone","reach":null}],"summary":{"ran_draft_wrong":1,"unverified":5},"by_repo_kind":{"official":{"samples":2,"ran":1,"repositories":1},"listed":{"samples":4,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":2,"samples":[{"code_sha256_prefix":"26534874fe1cf631","entry":"reparameterize_model","repo":"apple/ml-mobileone","repo_kind":"official","path":"mobileone.py","file_url":"https://github.com/apple/ml-mobileone/blob/HEAD/mobileone.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"26534874fe1cf631"}},{"code_sha256_prefix":"c0f962b136ec921d","entry":"get_params","repo":"federicopozzi33/MobileOne-PyTorch","repo_kind":"listed","path":"mobileone_pytorch/_mobileone_network.py","file_url":"https://github.com/federicopozzi33/MobileOne-PyTorch/blob/HEAD/mobileone_pytorch/_mobileone_network.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c0f962b136ec921d"}},{"code_sha256_prefix":"605c9a0436c7d190","entry":"mobileone","repo":"apple/ml-mobileone","repo_kind":"official","path":"mobileone.py","file_url":"https://github.com/apple/ml-mobileone/blob/HEAD/mobileone.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"605c9a0436c7d190"}},{"code_sha256_prefix":"8cb327644ca15c23","entry":"pad_1x1_to_3x3_tensor","repo":"federicopozzi33/MobileOne-PyTorch","repo_kind":"listed","path":"mobileone_pytorch/_reparametrize.py","file_url":"https://github.com/federicopozzi33/MobileOne-PyTorch/blob/HEAD/mobileone_pytorch/_reparametrize.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8cb327644ca15c23"}},{"code_sha256_prefix":"4ca57268f3fb57a1","entry":"rep_bn_to_conv2d","repo":"federicopozzi33/MobileOne-PyTorch","repo_kind":"listed","path":"mobileone_pytorch/_reparametrize.py","file_url":"https://github.com/federicopozzi33/MobileOne-PyTorch/blob/HEAD/mobileone_pytorch/_reparametrize.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4ca57268f3fb57a1"}},{"code_sha256_prefix":"dc9f04f8004c26ff","entry":"rep_conv2d_bn_to_conv2d","repo":"federicopozzi33/MobileOne-PyTorch","repo_kind":"listed","path":"mobileone_pytorch/_reparametrize.py","file_url":"https://github.com/federicopozzi33/MobileOne-PyTorch/blob/HEAD/mobileone_pytorch/_reparametrize.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dc9f04f8004c26ff"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}