{"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/unsupervised-multi-source-domain-adaptation","title":"Unsupervised Multi-source Domain Adaptation Without Access to Source Data","arxiv_id":"2104.01845","date":"2021-04-05","proceeding":"CVPR 2021 1","authors":["Sk Miraj Ahmed","Dripta S. Raychaudhuri","Sujoy Paul","Samet Oymak","Amit K. Roy-Chowdhury"],"abstract":"Unsupervised Domain Adaptation (UDA) aims to learn a predictor model for an unlabeled domain by transferring knowledge from a separate labeled source domain. However, most of these conventional UDA approaches make the strong assumption of having access to the source data during training, which may not be very practical due to privacy, security and storage concerns. A recent line of work addressed this problem and proposed an algorithm that transfers knowledge to the unlabeled target domain from a single source model without requiring access to the source data. However, for adaptation purposes, if there are multiple trained source models available to choose from, this method has to go through adapting each and every model individually, to check for the best source. Thus, we ask the question: can we find the optimal combination of source models, with no source data and without target labels, whose performance is no worse than the single best source? To answer this, we propose a novel and efficient algorithm which automatically combines the source models with suitable weights in such a way that it performs at least as good as the best source model. We provide intuitive theoretical insights to justify our claim. Furthermore, extensive experiments are conducted on several benchmark datasets to show the effectiveness of our algorithm, where in most cases, our method not only reaches best source accuracy but also outperforms it.","url_abs":"https://arxiv.org/abs/2104.01845v1","url_pdf":"https://arxiv.org/pdf/2104.01845v1.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":"unsupervised-multi-source-domain-adaptation","repo_url":"https://github.com/driptaRC/DECISION","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"unsupervised-domain-adaptation","task_name":"Unsupervised Domain Adaptation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2104.01845","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.01845"}},"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/driptaRC/DECISION","reach":null}],"summary":{"ran_draft_wrong":1,"ran":3,"unverified":4},"by_repo_kind":{"listed":{"samples":8,"ran":4,"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":"7ba25b84bcf91c5a","entry":"data_load","repo":"driptaRC/DECISION","repo_kind":"listed","path":"adapt_multi.py","file_url":"https://github.com/driptaRC/DECISION/blob/HEAD/adapt_multi.py","link_basis":"first_harvest_node","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":"7ba25b84bcf91c5a"}},{"code_sha256_prefix":"dc1fec3684ad2c3d","entry":"feat_bottleneck","repo":"driptaRC/DECISION","repo_kind":"listed","path":"adapt_multi.py","file_url":"https://github.com/driptaRC/DECISION/blob/HEAD/adapt_multi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dc1fec3684ad2c3d"}},{"code_sha256_prefix":"be3e451f783e5bab","entry":"feat_classifier","repo":"driptaRC/DECISION","repo_kind":"listed","path":"adapt_multi.py","file_url":"https://github.com/driptaRC/DECISION/blob/HEAD/adapt_multi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"be3e451f783e5bab"}},{"code_sha256_prefix":"2ef8d37c92cb2fed","entry":"scalar","repo":"driptaRC/DECISION","repo_kind":"listed","path":"adapt_multi.py","file_url":"https://github.com/driptaRC/DECISION/blob/HEAD/adapt_multi.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2ef8d37c92cb2fed"}},{"code_sha256_prefix":"26f47e76a106ed2d","entry":"VGGBase","repo":"driptaRC/DECISION","repo_kind":"listed","path":"adapt_multi.py","file_url":"https://github.com/driptaRC/DECISION/blob/HEAD/adapt_multi.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":"26f47e76a106ed2d"}},{"code_sha256_prefix":"9a78b60ad452f989","entry":"cal_acc_multi","repo":"driptaRC/DECISION","repo_kind":"listed","path":"adapt_multi.py","file_url":"https://github.com/driptaRC/DECISION/blob/HEAD/adapt_multi.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":"9a78b60ad452f989"}},{"code_sha256_prefix":"5b7bf620e4e50f11","entry":"obtain_label","repo":"driptaRC/DECISION","repo_kind":"listed","path":"adapt_multi.py","file_url":"https://github.com/driptaRC/DECISION/blob/HEAD/adapt_multi.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":"5b7bf620e4e50f11"}},{"code_sha256_prefix":"b1bbbdb6f251057d","entry":"train_target","repo":"driptaRC/DECISION","repo_kind":"listed","path":"adapt_multi.py","file_url":"https://github.com/driptaRC/DECISION/blob/HEAD/adapt_multi.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":"b1bbbdb6f251057d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}