{"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/dualgan-unsupervised-dual-learning-for-image","title":"DualGAN: Unsupervised Dual Learning for Image-to-Image Translation","arxiv_id":"1704.02510","date":"2017-04-08","proceeding":"ICCV 2017 10","authors":["Zili Yi","Hao Zhang","Ping Tan","Minglun Gong"],"abstract":"Conditional Generative Adversarial Networks (GANs) for cross-domain\nimage-to-image translation have made much progress recently. Depending on the\ntask complexity, thousands to millions of labeled image pairs are needed to\ntrain a conditional GAN. However, human labeling is expensive, even\nimpractical, and large quantities of data may not always be available. Inspired\nby dual learning from natural language translation, we develop a novel dual-GAN\nmechanism, which enables image translators to be trained from two sets of\nunlabeled images from two domains. In our architecture, the primal GAN learns\nto translate images from domain U to those in domain V, while the dual GAN\nlearns to invert the task. The closed loop made by the primal and dual tasks\nallows images from either domain to be translated and then reconstructed. Hence\na loss function that accounts for the reconstruction error of images can be\nused to train the translators. Experiments on multiple image translation tasks\nwith unlabeled data show considerable performance gain of DualGAN over a single\nGAN. For some tasks, DualGAN can even achieve comparable or slightly better\nresults than conditional GAN trained on fully labeled data.","url_abs":"http://arxiv.org/abs/1704.02510v4","url_pdf":"http://arxiv.org/pdf/1704.02510v4.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":"dualgan-unsupervised-dual-learning-for-image","repo_url":"https://github.com/duxingren14/DualGAN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"dualgan-unsupervised-dual-learning-for-image","repo_url":"https://github.com/MichalKacprzak99/reconstruction_particle_mass_spectra","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"dualgan-unsupervised-dual-learning-for-image","repo_url":"https://github.com/Ritam9/DualGAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}},{"paper_slug":"dualgan-unsupervised-dual-learning-for-image","repo_url":"https://github.com/eriklindernoren/Keras-GAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}},{"paper_slug":"dualgan-unsupervised-dual-learning-for-image","repo_url":"https://github.com/eriklindernoren/PyTorch-GAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"dualgan-unsupervised-dual-learning-for-image","repo_url":"https://github.com/tmabraham/UPIT","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"dualgan-unsupervised-dual-learning-for-image","repo_url":"https://github.com/togheppi/dualgan","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"image-to-image-translation","task_name":"Image-to-Image Translation"},{"task_slug":"translation","task_name":"Translation"}],"methods":[{"method_slug":"convolution","method_name":"Convolution"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-to-image-translation-on-aerial-to-map","task":"Image-to-Image Translation","dataset":"Aerial-to-Map","model":"DualGAN","rank_in_archive_order":2,"of":2,"metrics":{"Class IOU":"0.09","Per-class Accuracy":"22%","Per-pixel Accuracy":"42%"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1704.02510","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1704.02510"}},"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/togheppi/dualgan","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/Ritam9/DualGAN","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/eriklindernoren/Keras-GAN","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/tmabraham/UPIT","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/eriklindernoren/PyTorch-GAN","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/duxingren14/DualGAN","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MichalKacprzak99/reconstruction_particle_mass_spectra","reach":{"status":"unanswered"}}],"summary":{"unverified":2},"by_repo_kind":{"listed":{"samples":2,"ran":0,"repositories":2}},"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":"389f241698c1763f","entry":"compute_gradient_penalty","repo":"tmabraham/UPIT","repo_kind":"listed","path":"upit/train/dualgan.py","file_url":"https://github.com/tmabraham/UPIT/blob/HEAD/upit/train/dualgan.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"389f241698c1763f"}},{"code_sha256_prefix":"7df95909e48d11f5","entry":"compute_gradient_penalty","repo":"eriklindernoren/PyTorch-GAN","repo_kind":"listed","path":"implementations/dualgan/dualgan.py","file_url":"https://github.com/eriklindernoren/PyTorch-GAN/blob/HEAD/implementations/dualgan/dualgan.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":"7df95909e48d11f5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}