{"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/scaling-shifting-your-features-a-new-baseline","title":"Scaling & Shifting Your Features: A New Baseline for Efficient Model Tuning","arxiv_id":"2210.08823","date":"2022-10-17","proceeding":null,"authors":["Dongze Lian","Daquan Zhou","Jiashi Feng","Xinchao Wang"],"abstract":"Existing fine-tuning methods either tune all parameters of the pre-trained model (full fine-tuning), which is not efficient, or only tune the last linear layer (linear probing), which suffers a significant accuracy drop compared to the full fine-tuning. In this paper, we propose a new parameter-efficient fine-tuning method termed as SSF, representing that researchers only need to Scale and Shift the deep Features extracted by a pre-trained model to catch up with the performance of full fine-tuning. In this way, SSF also surprisingly outperforms other parameter-efficient fine-tuning approaches even with a smaller number of tunable parameters. Furthermore, different from some existing parameter-efficient fine-tuning methods (e.g., Adapter or VPT) that introduce the extra parameters and computational cost in the training and inference stages, SSF only adds learnable parameters during the training stage, and these additional parameters can be merged into the original pre-trained model weights via re-parameterization in the inference phase. With the proposed SSF, our model obtains 2.46% (90.72% vs. 88.54%) and 11.48% (73.10% vs. 65.57%) performance improvement on FGVC and VTAB-1k in terms of Top-1 accuracy compared to the full fine-tuning but only fine-tuning about 0.3M parameters. We also conduct amounts of experiments in various model families (CNNs, Transformers, and MLPs) and datasets. Results on 26 image classification datasets in total and 3 robustness & out-of-distribution datasets show the effectiveness of SSF. Code is available at https://github.com/dongzelian/SSF.","url_abs":"https://arxiv.org/abs/2210.08823v3","url_pdf":"https://arxiv.org/pdf/2210.08823v3.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":"scaling-shifting-your-features-a-new-baseline","repo_url":"https://github.com/dongzelian/ssf","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"},{"task_slug":"parameter-efficient-fine-tuning","task_name":"parameter-efficient fine-tuning"}],"methods":[{"method_slug":"adapter","method_name":"Adapter"},{"method_slug":"linear-layer","method_name":"Linear Layer"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2210.08823","atlas_url":"https://app.syntology.ai/?focus=2210.08823","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2210.08823"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/dongzelian/ssf","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":5,"ran":5,"ran_honours":1,"ran_fixture":1,"unverified":3},"by_repo_kind":{"official":{"samples":15,"ran":12,"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":"c3f4c265067c1717","entry":"MyNorm","repo":"dongzelian/ssf","repo_kind":"official","path":"models/as_mlp.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/models/as_mlp.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":"c3f4c265067c1717"}},{"code_sha256_prefix":"def23f7d7d042968","entry":"get_init_weights_vit","repo":"dongzelian/ssf","repo_kind":"official","path":"models/vision_transformer.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/models/vision_transformer.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"def23f7d7d042968"}},{"code_sha256_prefix":"a9e48df75d2e823e","entry":"get_mce_from_accuracy","repo":"dongzelian/ssf","repo_kind":"official","path":"utils/mce_utils.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/utils/mce_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a9e48df75d2e823e"}},{"code_sha256_prefix":"896b5eec245f1bab","entry":"init_ssf_scale_shift","repo":"dongzelian/ssf","repo_kind":"official","path":"models/vision_transformer.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/models/vision_transformer.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"896b5eec245f1bab"}},{"code_sha256_prefix":"9873773b10315cc0","entry":"init_ssf_scale_shift","repo":"dongzelian/ssf","repo_kind":"official","path":"models/as_mlp.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/models/as_mlp.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9873773b10315cc0"}},{"code_sha256_prefix":"88f4962784e09b88","entry":"param_groups_weight_decay","repo":"dongzelian/ssf","repo_kind":"official","path":"optim_factory.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/optim_factory.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":"88f4962784e09b88"}},{"code_sha256_prefix":"6957ddf9520c3d71","entry":"resize_pos_embed","repo":"dongzelian/ssf","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/utils/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6957ddf9520c3d71"}},{"code_sha256_prefix":"0eae5b409f8d3a5b","entry":"resize_pos_embed_cait","repo":"dongzelian/ssf","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/utils/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0eae5b409f8d3a5b"}},{"code_sha256_prefix":"f553c9b260a0e6e3","entry":"resize_pos_embed_nocls","repo":"dongzelian/ssf","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/utils/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f553c9b260a0e6e3"}},{"code_sha256_prefix":"61e8364b7e9bcb70","entry":"ssf_ada","repo":"dongzelian/ssf","repo_kind":"official","path":"models/as_mlp.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/models/as_mlp.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"61e8364b7e9bcb70"}},{"code_sha256_prefix":"993ae96666b00cb5","entry":"window_partition","repo":"dongzelian/ssf","repo_kind":"official","path":"models/swin_transformer.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/models/swin_transformer.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"993ae96666b00cb5"}},{"code_sha256_prefix":"609922bd93c75117","entry":"window_reverse","repo":"dongzelian/ssf","repo_kind":"official","path":"models/swin_transformer.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/models/swin_transformer.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"609922bd93c75117"}},{"code_sha256_prefix":"7619bf7f57c5d2b6","entry":"checkpoint_filter_fn","repo":"dongzelian/ssf","repo_kind":"official","path":"models/convnext.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/models/convnext.py","link_basis":"harvester_set","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":"7619bf7f57c5d2b6"}},{"code_sha256_prefix":"efeb37d90ba28266","entry":"group_parameters","repo":"dongzelian/ssf","repo_kind":"official","path":"optim_factory.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/optim_factory.py","link_basis":"harvester_set","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":"efeb37d90ba28266"}},{"code_sha256_prefix":"0332519996466b5a","entry":"group_with_matcher","repo":"dongzelian/ssf","repo_kind":"official","path":"optim_factory.py","file_url":"https://github.com/dongzelian/ssf/blob/HEAD/optim_factory.py","link_basis":"harvester_set","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":"0332519996466b5a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}