{"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/vision-transformer-with-progressive-sampling","title":"Vision Transformer with Progressive Sampling","arxiv_id":"2108.01684","date":"2021-08-03","proceeding":"ICCV 2021 10","authors":["Xiaoyu Yue","Shuyang Sun","Zhanghui Kuang","Meng Wei","Philip Torr","Wayne Zhang","Dahua Lin"],"abstract":"Transformers with powerful global relation modeling abilities have been introduced to fundamental computer vision tasks recently. As a typical example, the Vision Transformer (ViT) directly applies a pure transformer architecture on image classification, by simply splitting images into tokens with a fixed length, and employing transformers to learn relations between these tokens. However, such naive tokenization could destruct object structures, assign grids to uninterested regions such as background, and introduce interference signals. To mitigate the above issues, in this paper, we propose an iterative and progressive sampling strategy to locate discriminative regions. At each iteration, embeddings of the current sampling step are fed into a transformer encoder layer, and a group of sampling offsets is predicted to update the sampling locations for the next step. The progressive sampling is differentiable. When combined with the Vision Transformer, the obtained PS-ViT network can adaptively learn where to look. The proposed PS-ViT is both effective and efficient. When trained from scratch on ImageNet, PS-ViT performs 3.8% higher than the vanilla ViT in terms of top-1 accuracy with about $4\\times$ fewer parameters and $10\\times$ fewer FLOPs. Code is available at https://github.com/yuexy/PS-ViT.","url_abs":"https://arxiv.org/abs/2108.01684v1","url_pdf":"https://arxiv.org/pdf/2108.01684v1.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":"vision-transformer-with-progressive-sampling","repo_url":"https://github.com/yuexy/PS-ViT","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"image-classification","task_name":"image-classification"}],"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":"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":"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":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2108.01684","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2108.01684"}},"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":"deterministic:regex_extraction","url":"https://github.com/yuexy/PS-ViT","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"unverified":5},"by_repo_kind":{"official":{"samples":7,"ran":2,"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":"6ef392f365cc5703","entry":"conv1x1","repo":"yuexy/PS-ViT","repo_kind":"official","path":"models/ps_vit.py","file_url":"https://github.com/yuexy/PS-ViT/blob/HEAD/models/ps_vit.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6ef392f365cc5703"}},{"code_sha256_prefix":"794a2ed91a5175bd","entry":"conv3x3","repo":"yuexy/PS-ViT","repo_kind":"official","path":"models/ps_vit.py","file_url":"https://github.com/yuexy/PS-ViT/blob/HEAD/models/ps_vit.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"794a2ed91a5175bd"}},{"code_sha256_prefix":"27b31e965ef896f1","entry":"addmm_flop_jit","repo":"yuexy/PS-ViT","repo_kind":"official","path":"utils/flop_count/jit_handles.py","file_url":"https://github.com/yuexy/PS-ViT/blob/HEAD/utils/flop_count/jit_handles.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"27b31e965ef896f1"}},{"code_sha256_prefix":"1cf1c5e0f9a581ba","entry":"create_loader","repo":"yuexy/PS-ViT","repo_kind":"official","path":"utils/loader.py","file_url":"https://github.com/yuexy/PS-ViT/blob/HEAD/utils/loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1cf1c5e0f9a581ba"}},{"code_sha256_prefix":"b2ada9fb7de2d355","entry":"dist_init","repo":"yuexy/PS-ViT","repo_kind":"official","path":"utils/distributed_utils.py","file_url":"https://github.com/yuexy/PS-ViT/blob/HEAD/utils/distributed_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b2ada9fb7de2d355"}},{"code_sha256_prefix":"29724655612e3ef9","entry":"generic_activation_jit","repo":"yuexy/PS-ViT","repo_kind":"official","path":"utils/flop_count/jit_handles.py","file_url":"https://github.com/yuexy/PS-ViT/blob/HEAD/utils/flop_count/jit_handles.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"29724655612e3ef9"}},{"code_sha256_prefix":"653ac611901cfc1c","entry":"get_shape","repo":"yuexy/PS-ViT","repo_kind":"official","path":"utils/flop_count/jit_handles.py","file_url":"https://github.com/yuexy/PS-ViT/blob/HEAD/utils/flop_count/jit_handles.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"653ac611901cfc1c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}