{"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/cycle-starnet-bridging-the-gap-between-theory","title":"Cycle-StarNet: Bridging the gap between theory and data by leveraging large datasets","arxiv_id":"2007.03109","date":"2020-07-06","proceeding":null,"authors":["Teaghan O'Briain","Yuan-Sen Ting","Sébastien Fabbro","Kwang M. Yi","Kim Venn","Spencer Bialek"],"abstract":"The advancements in stellar spectroscopy data acquisition have made it necessary to accomplish similar improvements in efficient data analysis techniques. Current automated methods for analyzing spectra are either (a) data-driven, which requires prior knowledge of stellar parameters and elemental abundances, or (b) based on theoretical synthetic models that are susceptible to the gap between theory and practice. In this study, we present a hybrid generative domain adaptation method that turns simulated stellar spectra into realistic spectra by applying unsupervised learning to large spectroscopic surveys. We apply our technique to the APOGEE H-band spectra at R=22,500 and the Kurucz synthetic models. As a proof of concept, two case studies are presented. The first of which is the calibration of synthetic data to become consistent with observations. To accomplish this, synthetic models are morphed into spectra that resemble observations, thereby reducing the gap between theory and observations. Fitting the observed spectra shows an improved average reduced $\\chi_R^2$ from 1.97 to 1.22, along with a reduced mean residual from 0.16 to -0.01 in normalized flux. The second case study is the identification of the elemental source of missing spectral lines in the synthetic modelling. A mock dataset is used to show that absorption lines can be recovered when they are absent in one of the domains. This method can be applied to other fields, which use large data sets and are currently limited by modelling accuracy. The code used in this study is made publicly available on github.","url_abs":"https://arxiv.org/abs/2007.03109v3","url_pdf":"https://arxiv.org/pdf/2007.03109v3.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":"cycle-starnet-bridging-the-gap-between-theory","repo_url":"https://github.com/teaghan/Cycle_SN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"GPL-3.0"}}],"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=2007.03109","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2007.03109"}},"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/teaghan/Cycle_SN","reach":{"status":"ok","spdx":"GPL-3.0"}}],"summary":{"ran":1,"ran_fixture":3,"ran_draft_wrong":1,"ran_honours":1,"unverified":3},"by_repo_kind":{"official":{"samples":9,"ran":6,"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":"06cf8890533fba0d","entry":"Discrimninator","repo":"teaghan/cycle_sn","repo_kind":"official","path":"network.py","file_url":"https://github.com/teaghan/cycle_sn/blob/HEAD/network.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"06cf8890533fba0d"}},{"code_sha256_prefix":"1aa208303ad38191","entry":"build_decoder","repo":"teaghan/cycle_sn","repo_kind":"official","path":"network.py","file_url":"https://github.com/teaghan/cycle_sn/blob/HEAD/network.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"1aa208303ad38191"}},{"code_sha256_prefix":"78f225c1fdd158da","entry":"build_discriminator","repo":"teaghan/cycle_sn","repo_kind":"official","path":"network.py","file_url":"https://github.com/teaghan/cycle_sn/blob/HEAD/network.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"78f225c1fdd158da"}},{"code_sha256_prefix":"ff1044f7440d5d3d","entry":"build_encoder","repo":"teaghan/cycle_sn","repo_kind":"official","path":"network.py","file_url":"https://github.com/teaghan/cycle_sn/blob/HEAD/network.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"ff1044f7440d5d3d"}},{"code_sha256_prefix":"dbf9bde551dbe1cc","entry":"compute_out_size","repo":"teaghan/cycle_sn","repo_kind":"official","path":"network.py","file_url":"https://github.com/teaghan/cycle_sn/blob/HEAD/network.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"dbf9bde551dbe1cc"}},{"code_sha256_prefix":"d91f62268a99501f","entry":"same_padding","repo":"teaghan/cycle_sn","repo_kind":"official","path":"network.py","file_url":"https://github.com/teaghan/cycle_sn/blob/HEAD/network.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"d91f62268a99501f"}},{"code_sha256_prefix":"1e6c52e863975b6e","entry":"CycleSN","repo":"teaghan/cycle_sn","repo_kind":"official","path":"network.py","file_url":"https://github.com/teaghan/cycle_sn/blob/HEAD/network.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"1e6c52e863975b6e"}},{"code_sha256_prefix":"d02b50eb66e5d113","entry":"build_emulator","repo":"teaghan/cycle_sn","repo_kind":"official","path":"network.py","file_url":"https://github.com/teaghan/cycle_sn/blob/HEAD/network.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"d02b50eb66e5d113"}},{"code_sha256_prefix":"c0df7f2e81668079","entry":"init_weights","repo":"teaghan/cycle_sn","repo_kind":"official","path":"network.py","file_url":"https://github.com/teaghan/cycle_sn/blob/HEAD/network.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"c0df7f2e81668079"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}