{"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/cross-domain-adaptive-clustering-for-semi","title":"Cross-Domain Adaptive Clustering for Semi-Supervised Domain Adaptation","arxiv_id":"2104.09415","date":"2021-04-19","proceeding":"CVPR 2021 1","authors":["Jichang Li","Guanbin Li","Yemin Shi","Yizhou Yu"],"abstract":"In semi-supervised domain adaptation, a few labeled samples per class in the target domain guide features of the remaining target samples to aggregate around them. However, the trained model cannot produce a highly discriminative feature representation for the target domain because the training data is dominated by labeled samples from the source domain. This could lead to disconnection between the labeled and unlabeled target samples as well as misalignment between unlabeled target samples and the source domain. In this paper, we propose a novel approach called Cross-domain Adaptive Clustering to address this problem. To achieve both inter-domain and intra-domain adaptation, we first introduce an adversarial adaptive clustering loss to group features of unlabeled target data into clusters and perform cluster-wise feature alignment across the source and target domains. We further apply pseudo labeling to unlabeled samples in the target domain and retain pseudo-labels with high confidence. Pseudo labeling expands the number of ``labeled\" samples in each class in the target domain, and thus produces a more robust and powerful cluster core for each class to facilitate adversarial learning. Extensive experiments on benchmark datasets, including DomainNet, Office-Home and Office, demonstrate that our proposed approach achieves the state-of-the-art performance in semi-supervised domain adaptation.","url_abs":"https://arxiv.org/abs/2104.09415v1","url_pdf":"https://arxiv.org/pdf/2104.09415v1.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":"cross-domain-adaptive-clustering-for-semi","repo_url":"https://github.com/lijichang/CVPR2021-SSDA","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"cross-domain-adaptive-clustering-for-semi","repo_url":"https://github.com/KaiyangZhou/Dassl.pytorch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"cross-domain-adaptive-clustering-for-semi","repo_url":"https://github.com/zwenyu/UniSSDA","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"domain-adaptation","task_name":"Domain Adaptation"},{"task_slug":"semi-supervised-domain-adaptation","task_name":"Semi-supervised Domain Adaptation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2104.09415","atlas_url":"https://app.syntology.ai/?focus=2104.09415","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2104.09415"}},"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/zwenyu/UniSSDA","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/KaiyangZhou/Dassl.pytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/lijichang/CVPR2021-SSDA","reach":null}],"summary":{"ran":2,"ran_draft_wrong":4,"ran_honours":1,"unverified":2},"by_repo_kind":{"official":{"samples":4,"ran":4,"repositories":1},"listed":{"samples":5,"ran":3,"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":9,"samples":[{"code_sha256_prefix":"a1099a881bc91743","entry":"BCE","repo":"zwenyu/UniSSDA","repo_kind":"listed","path":"algorithms/algorithms.py","file_url":"https://github.com/zwenyu/UniSSDA/blob/HEAD/algorithms/algorithms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a1099a881bc91743"}},{"code_sha256_prefix":"aac8a53a357f9691","entry":"BCE_softlabels","repo":"zwenyu/UniSSDA","repo_kind":"listed","path":"algorithms/algorithms.py","file_url":"https://github.com/zwenyu/UniSSDA/blob/HEAD/algorithms/algorithms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"aac8a53a357f9691"}},{"code_sha256_prefix":"04928299fb8af14f","entry":"PairEnum1D","repo":"lijichang/CVPR2021-SSDA","repo_kind":"official","path":"losses.py","file_url":"https://github.com/lijichang/CVPR2021-SSDA/blob/HEAD/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"04928299fb8af14f"}},{"code_sha256_prefix":"f596b7bdbf677113","entry":"PairEnum2D","repo":"lijichang/CVPR2021-SSDA","repo_kind":"official","path":"losses.py","file_url":"https://github.com/lijichang/CVPR2021-SSDA/blob/HEAD/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f596b7bdbf677113"}},{"code_sha256_prefix":"218450f6cca3efdb","entry":"advbce_unlabeled","repo":"lijichang/CVPR2021-SSDA","repo_kind":"official","path":"losses.py","file_url":"https://github.com/lijichang/CVPR2021-SSDA/blob/HEAD/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"218450f6cca3efdb"}},{"code_sha256_prefix":"05c632eeb210106d","entry":"pairwise_target","repo":"lijichang/CVPR2021-SSDA","repo_kind":"official","path":"losses.py","file_url":"https://github.com/lijichang/CVPR2021-SSDA/blob/HEAD/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"05c632eeb210106d"}},{"code_sha256_prefix":"b41d2568444cbe7e","entry":"sigmoid_rampup","repo":"zwenyu/UniSSDA","repo_kind":"listed","path":"algorithms/algorithms.py","file_url":"https://github.com/zwenyu/UniSSDA/blob/HEAD/algorithms/algorithms.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b41d2568444cbe7e"}},{"code_sha256_prefix":"04e06b24884611de","entry":"CDAC","repo":"zwenyu/UniSSDA","repo_kind":"listed","path":"algorithms/algorithms.py","file_url":"https://github.com/zwenyu/UniSSDA/blob/HEAD/algorithms/algorithms.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":"04e06b24884611de"}},{"code_sha256_prefix":"07f94a9b6348e882","entry":"CDAC_loss","repo":"zwenyu/UniSSDA","repo_kind":"listed","path":"algorithms/algorithms.py","file_url":"https://github.com/zwenyu/UniSSDA/blob/HEAD/algorithms/algorithms.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":"07f94a9b6348e882"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}