{"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/pruning-self-attentions-into-convolutional","title":"Pruning Self-attentions into Convolutional Layers in Single Path","arxiv_id":"2111.11802","date":"2021-11-23","proceeding":null,"authors":["Haoyu He","Jianfei Cai","Jing Liu","Zizheng Pan","Jing Zhang","DaCheng Tao","Bohan Zhuang"],"abstract":"Vision Transformers (ViTs) have achieved impressive performance over various computer vision tasks. However, modeling global correlations with multi-head self-attention (MSA) layers leads to two widely recognized issues: the massive computational resource consumption and the lack of intrinsic inductive bias for modeling local visual patterns. To solve both issues, we devise a simple yet effective method named Single-Path Vision Transformer pruning (SPViT), to efficiently and automatically compress the pre-trained ViTs into compact models with proper locality added. Specifically, we first propose a novel weight-sharing scheme between MSA and convolutional operations, delivering a single-path space to encode all candidate operations. In this way, we cast the operation search problem as finding which subset of parameters to use in each MSA layer, which significantly reduces the computational cost and optimization difficulty, and the convolution kernels can be well initialized using pre-trained MSA parameters. Relying on the single-path space, we introduce learnable binary gates to encode the operation choices in MSA layers. Similarly, we further employ learnable gates to encode the fine-grained MLP expansion ratios of FFN layers. In this way, our SPViT optimizes the learnable gates to automatically explore from a vast and unified search space and flexibly adjust the MSA-FFN pruning proportions for each individual dense model. We conduct extensive experiments on two representative ViTs showing that our SPViT achieves a new SOTA for pruning on ImageNet-1k. For example, our SPViT can trim 52.0% FLOPs for DeiT-B and get an impressive 0.6% top-1 accuracy gain simultaneously. The source code is available at https://github.com/ziplab/SPViT.","url_abs":"https://arxiv.org/abs/2111.11802v4","url_pdf":"https://arxiv.org/pdf/2111.11802v4.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":"pruning-self-attentions-into-convolutional","repo_url":"https://github.com/zhuang-group/spvit","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"pruning-self-attentions-into-convolutional","repo_url":"https://github.com/zip-group/spvit","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"pruning-self-attentions-into-convolutional","repo_url":"https://github.com/ziplab/spvit","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"efficient-vits","task_name":"Efficient ViTs"},{"task_slug":"inductive-bias","task_name":"Inductive Bias"},{"task_slug":"architecture-search","task_name":"Neural Architecture Search"}],"methods":[{"method_slug":"absolute-position-encodings","method_name":"Absolute Position Encodings"},{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"bpe","method_name":"BPE"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"label-smoothing","method_name":"Label Smoothing"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"position-wise-feed-forward-layer","method_name":"Position-Wise Feed-Forward Layer"},{"method_slug":"pruning","method_name":"Pruning"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"transformer","method_name":"Transformer"},{"method_slug":"vision-transformer","method_name":"Vision Transformer"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/efficient-vits-on-imagenet-1k-with-deit-s","task":"Efficient ViTs","dataset":"ImageNet-1K (with DeiT-S)","model":"SPViT","rank_in_archive_order":39,"of":41,"metrics":{"GFLOPs":"3.3","Top 1 Accuracy":"78.3"},"uses_additional_data":false},{"leaderboard":"/sota/efficient-vits-on-imagenet-1k-with-deit-t","task":"Efficient ViTs","dataset":"ImageNet-1K (with DeiT-T)","model":"SPViT","rank_in_archive_order":19,"of":22,"metrics":{"GFLOPs":"1.0","Top 1 Accuracy":"70.7"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2111.11802","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2111.11802"}},"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/zip-group/spvit","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ziplab/spvit","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zhuang-group/spvit","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":7},"by_repo_kind":{"official":{"samples":7,"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":0,"samples":[{"code_sha256_prefix":"6e8ab5fd7940cb9f","entry":"add_weight_decay_2ops","repo":"zhuang-group/spvit","repo_kind":"official","path":"SPViT_DeiT/utils.py","file_url":"https://github.com/zhuang-group/spvit/blob/HEAD/SPViT_DeiT/utils.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":"6e8ab5fd7940cb9f"}},{"code_sha256_prefix":"d2fd8fea61da291c","entry":"bernoulli_sample","repo":"zhuang-group/spvit","repo_kind":"official","path":"SPViT_DeiT/models_pruning.py","file_url":"https://github.com/zhuang-group/spvit/blob/HEAD/SPViT_DeiT/models_pruning.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":"d2fd8fea61da291c"}},{"code_sha256_prefix":"ee1f337457f629d5","entry":"build_dataset","repo":"zhuang-group/spvit","repo_kind":"official","path":"SPViT_DeiT/datasets.py","file_url":"https://github.com/zhuang-group/spvit/blob/HEAD/SPViT_DeiT/datasets.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":"ee1f337457f629d5"}},{"code_sha256_prefix":"3bc74137ab36aa79","entry":"build_transform","repo":"zhuang-group/spvit","repo_kind":"official","path":"SPViT_DeiT/datasets.py","file_url":"https://github.com/zhuang-group/spvit/blob/HEAD/SPViT_DeiT/datasets.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":"3bc74137ab36aa79"}},{"code_sha256_prefix":"4e98bc6a44b3e514","entry":"create_2optimizers","repo":"zhuang-group/spvit","repo_kind":"official","path":"SPViT_DeiT/utils.py","file_url":"https://github.com/zhuang-group/spvit/blob/HEAD/SPViT_DeiT/utils.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":"4e98bc6a44b3e514"}},{"code_sha256_prefix":"d17e06164cf90aa8","entry":"create_scheduler","repo":"zhuang-group/spvit","repo_kind":"official","path":"SPViT_DeiT/utils.py","file_url":"https://github.com/zhuang-group/spvit/blob/HEAD/SPViT_DeiT/utils.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":"d17e06164cf90aa8"}},{"code_sha256_prefix":"7144e31403543bf8","entry":"relaxed_bernoulli_logits","repo":"zhuang-group/spvit","repo_kind":"official","path":"SPViT_DeiT/models_pruning.py","file_url":"https://github.com/zhuang-group/spvit/blob/HEAD/SPViT_DeiT/models_pruning.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":"7144e31403543bf8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}