{"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/rebooting-acgan-auxiliary-classifier-gans","title":"Rebooting ACGAN: Auxiliary Classifier GANs with Stable Training","arxiv_id":"2111.01118","date":"2021-11-01","proceeding":"NeurIPS 2021 12","authors":["Minguk Kang","Woohyeon Shim","Minsu Cho","Jaesik Park"],"abstract":"Conditional Generative Adversarial Networks (cGAN) generate realistic images by incorporating class information into GAN. While one of the most popular cGANs is an auxiliary classifier GAN with softmax cross-entropy loss (ACGAN), it is widely known that training ACGAN is challenging as the number of classes in the dataset increases. ACGAN also tends to generate easily classifiable samples with a lack of diversity. In this paper, we introduce two cures for ACGAN. First, we identify that gradient exploding in the classifier can cause an undesirable collapse in early training, and projecting input vectors onto a unit hypersphere can resolve the problem. Second, we propose the Data-to-Data Cross-Entropy loss (D2D-CE) to exploit relational information in the class-labeled dataset. On this foundation, we propose the Rebooted Auxiliary Classifier Generative Adversarial Network (ReACGAN). The experimental results show that ReACGAN achieves state-of-the-art generation results on CIFAR10, Tiny-ImageNet, CUB200, and ImageNet datasets. We also verify that ReACGAN benefits from differentiable augmentations and that D2D-CE harmonizes with StyleGAN2 architecture. Model weights and a software package that provides implementations of representative cGANs and all experiments in our paper are available at https://github.com/POSTECH-CVLab/PyTorch-StudioGAN.","url_abs":"https://arxiv.org/abs/2111.01118v1","url_pdf":"https://arxiv.org/pdf/2111.01118v1.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":"rebooting-acgan-auxiliary-classifier-gans","repo_url":"https://github.com/POSTECH-CVLab/PyTorch-StudioGAN","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"conditional-image-generation","task_name":"Conditional Image Generation"},{"task_slug":"diversity","task_name":"Diversity"},{"task_slug":null,"task_name":"Generative Adversarial Network"},{"task_slug":"image-generation","task_name":"Image Generation"}],"methods":[{"method_slug":"auxiliary-classifier","method_name":"Auxiliary Classifier"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"path-length-regularization","method_name":"Path Length Regularization"},{"method_slug":"r1-regularization","method_name":"R1 Regularization"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-demodulation","method_name":"Weight Demodulation"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/conditional-image-generation-on-artbench-10","task":"Conditional Image Generation","dataset":"ArtBench-10 (32x32)","model":"ReACGAN + DiffAug","rank_in_archive_order":2,"of":6,"metrics":{"FID":"3.175"},"uses_additional_data":false},{"leaderboard":"/sota/conditional-image-generation-on-cifar-10","task":"Conditional Image Generation","dataset":"CIFAR-10","model":"StyleGAN2 + DiffAugment + D2D-CE","rank_in_archive_order":3,"of":25,"metrics":{"FID":"2.26","Inception score":"10.51"},"uses_additional_data":false},{"leaderboard":"/sota/conditional-image-generation-on-imagenet","task":"Conditional Image Generation","dataset":"ImageNet 128x128","model":"ReACGAN","rank_in_archive_order":12,"of":22,"metrics":{"FID":"8.206","Inception score":"96.299"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2111.01118","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2111.01118"}},"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":"deterministic:regex_extraction","url":"https://github.com/POSTECH-CVLab/PyTorch-StudioGAN","reach":null}],"summary":{"ran":1,"ran_fixture":1,"ran_draft_wrong":6,"ran_honours":1},"by_repo_kind":{"official":{"samples":7,"ran":7,"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":"ff807a391d4e99b4","entry":"Data2DataCrossEntropyLoss","repo":"POSTECH-CVLab/PyTorch-StudioGAN","repo_kind":"official","path":"src/utils/losses.py","file_url":"https://github.com/POSTECH-CVLab/PyTorch-StudioGAN/blob/HEAD/src/utils/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"ff807a391d4e99b4"}},{"code_sha256_prefix":"00f27b8abf516650","entry":"apply_diffaug","repo":"postech-cvlab/pytorch-studiogan","repo_kind":"official","path":"src/utils/diffaug.py","file_url":"https://github.com/postech-cvlab/pytorch-studiogan/blob/HEAD/src/utils/diffaug.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"00f27b8abf516650"}},{"code_sha256_prefix":"369437c0fd47b308","entry":"d_vanilla","repo":"postech-cvlab/pytorch-studiogan","repo_kind":"official","path":"src/utils/losses.py","file_url":"https://github.com/postech-cvlab/pytorch-studiogan/blob/HEAD/src/utils/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"369437c0fd47b308"}},{"code_sha256_prefix":"233e3fc61244ce0c","entry":"enable_allreduce","repo":"postech-cvlab/pytorch-studiogan","repo_kind":"official","path":"src/utils/losses.py","file_url":"https://github.com/postech-cvlab/pytorch-studiogan/blob/HEAD/src/utils/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"233e3fc61244ce0c"}},{"code_sha256_prefix":"3673b761d410798a","entry":"g_vanilla","repo":"postech-cvlab/pytorch-studiogan","repo_kind":"official","path":"src/utils/losses.py","file_url":"https://github.com/postech-cvlab/pytorch-studiogan/blob/HEAD/src/utils/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"3673b761d410798a"}},{"code_sha256_prefix":"fd66a45971195f9a","entry":"rand_brightness","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"fd66a45971195f9a"}},{"code_sha256_prefix":"011230b2b9b8fb6f","entry":"rand_brightness","repo":"postech-cvlab/pytorch-studiogan","repo_kind":"official","path":"src/utils/diffaug.py","file_url":"https://github.com/postech-cvlab/pytorch-studiogan/blob/HEAD/src/utils/diffaug.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"011230b2b9b8fb6f"}},{"code_sha256_prefix":"abafb0afcfb5d028","entry":"rand_saturation","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"abafb0afcfb5d028"}},{"code_sha256_prefix":"5b0d8787e670fc63","entry":"rand_saturation","repo":"postech-cvlab/pytorch-studiogan","repo_kind":"official","path":"src/utils/diffaug.py","file_url":"https://github.com/postech-cvlab/pytorch-studiogan/blob/HEAD/src/utils/diffaug.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"5b0d8787e670fc63"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}