{"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/semi-supervised-domain-generalization-with","title":"Semi-Supervised Domain Generalization with Stochastic StyleMatch","arxiv_id":"2106.00592","date":"2021-06-01","proceeding":null,"authors":["Kaiyang Zhou","Chen Change Loy","Ziwei Liu"],"abstract":"Ideally, visual learning algorithms should be generalizable, for dealing with any unseen domain shift when deployed in a new target environment; and data-efficient, for reducing development costs by using as little labels as possible. To this end, we study semi-supervised domain generalization (SSDG), which aims to learn a domain-generalizable model using multi-source, partially-labeled training data. We design two benchmarks that cover state-of-the-art methods developed in two related fields, i.e., domain generalization (DG) and semi-supervised learning (SSL). We find that the DG methods, which by design are unable to handle unlabeled data, perform poorly with limited labels in SSDG; the SSL methods, especially FixMatch, obtain much better results but are still far away from the basic vanilla model trained using full labels. We propose StyleMatch, a simple approach that extends FixMatch with a couple of new ingredients tailored for SSDG: 1) stochastic modeling for reducing overfitting in scarce labels, and 2) multi-view consistency learning for enhancing domain generalization. Despite the concise designs, StyleMatch achieves significant improvements in SSDG. We hope our approach and the comprehensive benchmarks can pave the way for future research on generalizable and data-efficient learning systems. The source code is released at \\url{https://github.com/KaiyangZhou/ssdg-benchmark}.","url_abs":"https://arxiv.org/abs/2106.00592v2","url_pdf":"https://arxiv.org/pdf/2106.00592v2.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":"semi-supervised-domain-generalization-with","repo_url":"https://github.com/KaiyangZhou/Dassl.pytorch","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"semi-supervised-domain-generalization-with","repo_url":"https://github.com/KaiyangZhou/ssdg-benchmark","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"domain-generalization","task_name":"Domain Generalization"},{"task_slug":"semi-supervised-domain-generalization","task_name":"Semi-Supervised Domain Generalization"}],"methods":[{"method_slug":"fixmatch","method_name":"FixMatch"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2106.00592","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.00592"}},"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/KaiyangZhou/Dassl.pytorch","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/KaiyangZhou/ssdg-benchmark","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"ran_fixture":1,"ran":1,"unverified":1},"by_repo_kind":{"official":{"samples":4,"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":0,"samples":[{"code_sha256_prefix":"16679a24b9881031","entry":"adaptive_instance_normalization","repo":"KaiyangZhou/ssdg-benchmark","repo_kind":"official","path":"trainers/adain/function.py","file_url":"https://github.com/KaiyangZhou/ssdg-benchmark/blob/HEAD/trainers/adain/function.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":"16679a24b9881031"}},{"code_sha256_prefix":"38eaf8511dc7bc9c","entry":"calc_mean_std","repo":"KaiyangZhou/ssdg-benchmark","repo_kind":"official","path":"trainers/adain/function.py","file_url":"https://github.com/KaiyangZhou/ssdg-benchmark/blob/HEAD/trainers/adain/function.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"38eaf8511dc7bc9c"}},{"code_sha256_prefix":"ba26afd892405335","entry":"compute_ci95","repo":"KaiyangZhou/ssdg-benchmark","repo_kind":"official","path":"parse_test_res.py","file_url":"https://github.com/KaiyangZhou/ssdg-benchmark/blob/HEAD/parse_test_res.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":"ba26afd892405335"}},{"code_sha256_prefix":"277f955e6caa9cfb","entry":"coral","repo":"KaiyangZhou/ssdg-benchmark","repo_kind":"official","path":"trainers/adain/function.py","file_url":"https://github.com/KaiyangZhou/ssdg-benchmark/blob/HEAD/trainers/adain/function.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":"277f955e6caa9cfb"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}