{"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/prompt-vision-transformer-for-domain","title":"Prompt Vision Transformer for Domain Generalization","arxiv_id":"2208.08914","date":"2022-08-18","proceeding":null,"authors":["Zangwei Zheng","Xiangyu Yue","Kai Wang","Yang You"],"abstract":"Though vision transformers (ViTs) have exhibited impressive ability for representation learning, we empirically find that they cannot generalize well to unseen domains with previous domain generalization algorithms. In this paper, we propose a novel approach DoPrompt based on prompt learning to embed the knowledge of source domains in domain prompts for target domain prediction. Specifically, domain prompts are prepended before ViT input tokens from the corresponding source domain. Each domain prompt learns domain-specific knowledge efficiently since it is optimized only for one domain. Meanwhile, we train a prompt adapter to produce a suitable prompt for each input image based on the learned source domain prompts. At test time, the adapted prompt generated by the prompt adapter can exploit the similarity between the feature of the out-of-domain image and source domains to properly integrate the source domain knowledge. Extensive experiments are conducted on four benchmark datasets. Our approach achieves 1.4% improvements in the averaged accuracy, which is 3.5 times the improvement of the state-of-the-art algorithm with a ViT backbone.","url_abs":"https://arxiv.org/abs/2208.08914v1","url_pdf":"https://arxiv.org/pdf/2208.08914v1.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":"prompt-vision-transformer-for-domain","repo_url":"https://github.com/zhengzangw/DoPrompt","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"domain-generalization","task_name":"Domain Generalization"},{"task_slug":"prompt-learning","task_name":"Prompt Learning"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[{"method_slug":"adapter","method_name":"Adapter"},{"method_slug":"test","method_name":"Test"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2208.08914","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2208.08914"}},"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/zhengzangw/DoPrompt","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":4,"ran":7,"unverified":4},"by_repo_kind":{"official":{"samples":15,"ran":11,"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":"ce7990d7ad5821ff","entry":"Classifier","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/networks.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/networks.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":"ce7990d7ad5821ff"}},{"code_sha256_prefix":"00e569acd6b45ef0","entry":"conv3x3","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/lib/wide_resnet.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/lib/wide_resnet.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":"00e569acd6b45ef0"}},{"code_sha256_prefix":"8722522e3721ebfe","entry":"dataloader","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/lib/torchmisc.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/lib/torchmisc.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":"8722522e3721ebfe"}},{"code_sha256_prefix":"53fac8d8d949e72b","entry":"get_test_records","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/model_selection.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/model_selection.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"53fac8d8d949e72b"}},{"code_sha256_prefix":"b5becb520f35423a","entry":"grad_reverse","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/lib/torchmisc.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/lib/torchmisc.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b5becb520f35423a"}},{"code_sha256_prefix":"71a3a61ceed99bf3","entry":"hashable","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/lib/query.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/lib/query.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":"71a3a61ceed99bf3"}},{"code_sha256_prefix":"1fdaff04251a0d51","entry":"l2_between_dicts","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/lib/misc.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/lib/misc.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":"1fdaff04251a0d51"}},{"code_sha256_prefix":"2f8af5779e1edcb6","entry":"make_selector_fn","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/lib/query.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/lib/query.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":"2f8af5779e1edcb6"}},{"code_sha256_prefix":"3cb172d2f57f12cf","entry":"make_weights_for_balanced_classes","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/lib/misc.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/lib/misc.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":"3cb172d2f57f12cf"}},{"code_sha256_prefix":"d3981d403538b1d3","entry":"net_dist","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/lib/torchmisc.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/lib/torchmisc.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":"d3981d403538b1d3"}},{"code_sha256_prefix":"196cab71d7129d62","entry":"remove_batch_norm_from_resnet","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/networks.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/networks.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":"196cab71d7129d62"}},{"code_sha256_prefix":"b0bc80b1655a6802","entry":"get_algorithm_class","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/algorithms.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/algorithms.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":"b0bc80b1655a6802"}},{"code_sha256_prefix":"d0ea85d74c20dea9","entry":"get_dataset_class","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/datasets.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/datasets.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":"d0ea85d74c20dea9"}},{"code_sha256_prefix":"73f32252eedba6a4","entry":"num_environments","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/datasets.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/datasets.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":"73f32252eedba6a4"}},{"code_sha256_prefix":"af3c9a80c8fd1f7a","entry":"print_row","repo":"zhengzangw/DoPrompt","repo_kind":"official","path":"domainbed/lib/misc.py","file_url":"https://github.com/zhengzangw/DoPrompt/blob/HEAD/domainbed/lib/misc.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":"af3c9a80c8fd1f7a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}