{"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/test-time-adaptation-through-perturbation","title":"Test time Adaptation through Perturbation Robustness","arxiv_id":"2110.10232","date":"2021-10-19","proceeding":null,"authors":["Prabhu Teja Sivaprasad","François Fleuret"],"abstract":"Data samples generated by several real world processes are dynamic in nature \\textit{i.e.}, their characteristics vary with time. Thus it is not possible to train and tackle all possible distributional shifts between training and inference, using the host of transfer learning methods in literature. In this paper, we tackle this problem of adapting to domain shift at inference time \\textit{i.e.}, we do not change the training process, but quickly adapt the model at test-time to handle any domain shift. For this, we propose to enforce consistency of predictions of data sampled in the vicinity of test sample on the image manifold. On a host of test scenarios like dealing with corruptions (CIFAR-10-C and CIFAR-100-C), and domain adaptation (VisDA-C), our method is at par or significantly outperforms previous methods.","url_abs":"https://arxiv.org/abs/2110.10232v1","url_pdf":"https://arxiv.org/pdf/2110.10232v1.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":"test-time-adaptation-through-perturbation","repo_url":"https://github.com/prabhuteja12/pest","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"test-time-adaptation","task_name":"Test-time Adaptation"},{"task_slug":"transfer-learning","task_name":"Transfer Learning"}],"methods":[{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2110.10232","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2110.10232"}},"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/prabhuteja12/pest","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"unverified":8},"by_repo_kind":{"listed":{"samples":9,"ran":1,"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":"d203451c6493f65d","entry":"copy_model_and_optimizer","repo":"prabhuteja12/pest","repo_kind":"listed","path":"utils/model_utils.py","file_url":"https://github.com/prabhuteja12/pest/blob/HEAD/utils/model_utils.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":"d203451c6493f65d"}},{"code_sha256_prefix":"3f26b332f594df3e","entry":"entropy","repo":"prabhuteja12/pest","repo_kind":"listed","path":"utils/loss.py","file_url":"https://github.com/prabhuteja12/pest/blob/HEAD/utils/loss.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":"3f26b332f594df3e"}},{"code_sha256_prefix":"d22d7853c949aa23","entry":"float_parameter","repo":"prabhuteja12/pest","repo_kind":"listed","path":"dataset/augmix.py","file_url":"https://github.com/prabhuteja12/pest/blob/HEAD/dataset/augmix.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":"d22d7853c949aa23"}},{"code_sha256_prefix":"b82f06e6139d5f59","entry":"forward_and_adapt","repo":"prabhuteja12/pest","repo_kind":"listed","path":"adaptation_methods/noise_robustness.py","file_url":"https://github.com/prabhuteja12/pest/blob/HEAD/adaptation_methods/noise_robustness.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":"b82f06e6139d5f59"}},{"code_sha256_prefix":"b091215b926074c2","entry":"forward_and_adapt","repo":"prabhuteja12/pest","repo_kind":"listed","path":"adaptation_methods/tent.py","file_url":"https://github.com/prabhuteja12/pest/blob/HEAD/adaptation_methods/tent.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":"b091215b926074c2"}},{"code_sha256_prefix":"779a20a92e4145da","entry":"freeze_except_bn","repo":"prabhuteja12/pest","repo_kind":"listed","path":"utils/model_utils.py","file_url":"https://github.com/prabhuteja12/pest/blob/HEAD/utils/model_utils.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":"779a20a92e4145da"}},{"code_sha256_prefix":"855f88e3868b6d5d","entry":"get_loss_function","repo":"prabhuteja12/pest","repo_kind":"listed","path":"utils/loss.py","file_url":"https://github.com/prabhuteja12/pest/blob/HEAD/utils/loss.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":"855f88e3868b6d5d"}},{"code_sha256_prefix":"f0217da1d26e045b","entry":"int_parameter","repo":"prabhuteja12/pest","repo_kind":"listed","path":"dataset/augmix.py","file_url":"https://github.com/prabhuteja12/pest/blob/HEAD/dataset/augmix.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":"f0217da1d26e045b"}},{"code_sha256_prefix":"6deb98749be43fc8","entry":"to_numpy","repo":"prabhuteja12/pest","repo_kind":"listed","path":"dataset/augmix.py","file_url":"https://github.com/prabhuteja12/pest/blob/HEAD/dataset/augmix.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":"6deb98749be43fc8"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}