{"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/improved-test-time-adaptation-for-domain","title":"Improved Test-Time Adaptation for Domain Generalization","arxiv_id":"2304.04494","date":"2023-04-10","proceeding":"CVPR 2023 1","authors":["Liang Chen","Yong Zhang","Yibing Song","Ying Shan","Lingqiao Liu"],"abstract":"The main challenge in domain generalization (DG) is to handle the distribution shift problem that lies between the training and test data. Recent studies suggest that test-time training (TTT), which adapts the learned model with test data, might be a promising solution to the problem. Generally, a TTT strategy hinges its performance on two main factors: selecting an appropriate auxiliary TTT task for updating and identifying reliable parameters to update during the test phase. Both previous arts and our experiments indicate that TTT may not improve but be detrimental to the learned model if those two factors are not properly considered. This work addresses those two factors by proposing an Improved Test-Time Adaptation (ITTA) method. First, instead of heuristically defining an auxiliary objective, we propose a learnable consistency loss for the TTT task, which contains learnable parameters that can be adjusted toward better alignment between our TTT task and the main prediction task. Second, we introduce additional adaptive parameters for the trained model, and we suggest only updating the adaptive parameters during the test phase. Through extensive experiments, we show that the proposed two strategies are beneficial for the learned model (see Figure 1), and ITTA could achieve superior performance to the current state-of-the-art methods on several DG benchmarks. Code is available at https://github.com/liangchen527/ITTA.","url_abs":"https://arxiv.org/abs/2304.04494v2","url_pdf":"https://arxiv.org/pdf/2304.04494v2.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":"improved-test-time-adaptation-for-domain","repo_url":"https://github.com/liangchen527/itta","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"domain-generalization","task_name":"Domain Generalization"},{"task_slug":"image-to-sketch-recognition","task_name":"Image to sketch recognition"},{"task_slug":"single-source-domain-generalization","task_name":"Single-Source Domain Generalization"},{"task_slug":"test-time-adaptation","task_name":"Test-time Adaptation"}],"methods":[{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-to-sketch-recognition-on-pacs","task":"Image to sketch recognition","dataset":"PACS","model":"ITTA (ResNet18)","rank_in_archive_order":4,"of":7,"metrics":{"Accuracy":"63.8"},"uses_additional_data":false},{"leaderboard":"/sota/single-source-domain-generalization-on-pacs","task":"Single-Source Domain Generalization","dataset":"PACS","model":"ITTA (ResNet18)","rank_in_archive_order":5,"of":10,"metrics":{"Accuracy":"68.4"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2304.04494","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2304.04494"}},"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/liangchen527/itta","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/liangchen527/ITTA","reach":{"status":"ok"}}],"summary":{"unverified":1},"by_repo_kind":{"official":{"samples":1,"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":1,"samples":[{"code_sha256_prefix":"dc71c2d944d33051","entry":"ResNet_ITTA","repo":"liangchen527/ITTA","repo_kind":"official","path":"domainbed/networks.py","file_url":"https://github.com/liangchen527/ITTA/blob/HEAD/domainbed/networks.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"dc71c2d944d33051"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}