{"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/simplifying-neural-network-training-under-1","title":"Simplifying Neural Network Training Under Class Imbalance","arxiv_id":"2312.02517","date":"2023-12-05","proceeding":"NeurIPS 2023 11","authors":["Ravid Shwartz-Ziv","Micah Goldblum","Yucen Lily Li","C. Bayan Bruss","Andrew Gordon Wilson"],"abstract":"Real-world datasets are often highly class-imbalanced, which can adversely impact the performance of deep learning models. The majority of research on training neural networks under class imbalance has focused on specialized loss functions, sampling techniques, or two-stage training procedures. Notably, we demonstrate that simply tuning existing components of standard deep learning pipelines, such as the batch size, data augmentation, optimizer, and label smoothing, can achieve state-of-the-art performance without any such specialized class imbalance methods. We also provide key prescriptions and considerations for training under class imbalance, and an understanding of why imbalance methods succeed or fail.","url_abs":"https://arxiv.org/abs/2312.02517v1","url_pdf":"https://arxiv.org/pdf/2312.02517v1.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":"simplifying-neural-network-training-under-1","repo_url":"https://github.com/ravidziv/simplifyingimbalancedtraining","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"deep-learning","task_name":"Deep Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2312.02517","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2312.02517"}},"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/ravidziv/SimplifyingImbalancedTraining","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ravidziv/simplifyingimbalancedtraining","reach":{"status":"ok"}}],"summary":{"ran_violates":1,"ran":10,"ran_draft_wrong":2,"unverified":3},"by_repo_kind":{"official":{"samples":14,"ran":11,"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":16,"samples":[{"code_sha256_prefix":"190117b425ab9fe1","entry":"get_lr","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_violates","verification_level":2,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"190117b425ab9fe1"}},{"code_sha256_prefix":"e11996f54eea8253","entry":"adversarial_cross_entropy","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/losses.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e11996f54eea8253"}},{"code_sha256_prefix":"9d5555c9ff725b7f","entry":"center_crop","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/models/layers.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/models/layers.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":"9d5555c9ff725b7f"}},{"code_sha256_prefix":"583f9780bdd00a45","entry":"conv3x3","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/models/preresnet.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/models/preresnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"583f9780bdd00a45"}},{"code_sha256_prefix":"fc2aaf6fd20bc53f","entry":"cross_entropy","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/losses.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/losses.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"fc2aaf6fd20bc53f"}},{"code_sha256_prefix":"9ba3acf9da935ca1","entry":"get_base","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/models/preresnet.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/models/preresnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9ba3acf9da935ca1"}},{"code_sha256_prefix":"ec01de700d8c1028","entry":"get_resnet_transforms","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/models/preresnet.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/models/preresnet.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ec01de700d8c1028"}},{"code_sha256_prefix":"3b2896cbbe245a73","entry":"get_sampler","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/data.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3b2896cbbe245a73"}},{"code_sha256_prefix":"1d7c68b369e70ab0","entry":"has_file_allowed_extension","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/camvid.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/camvid.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1d7c68b369e70ab0"}},{"code_sha256_prefix":"af447e65a04b459e","entry":"is_image_file","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/camvid.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/camvid.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"af447e65a04b459e"}},{"code_sha256_prefix":"4a29d37fffcfd8b1","entry":"make_layers","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/models/vgg.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/models/vgg.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4a29d37fffcfd8b1"}},{"code_sha256_prefix":"0931a280f76e561f","entry":"nt_xent","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":"0931a280f76e561f"}},{"code_sha256_prefix":"ecb6936a718db4af","entry":"update_ens","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/models/model_wrapper.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/models/model_wrapper.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ecb6936a718db4af"}},{"code_sha256_prefix":"e1ae5ee1960f180e","entry":"camvid_loaders","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/data.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/data.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":"e1ae5ee1960f180e"}},{"code_sha256_prefix":"8bbca7799326d580","entry":"masked_loss","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/losses.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/losses.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":"8bbca7799326d580"}},{"code_sha256_prefix":"ddd3f33619ad1ab9","entry":"svhn_loaders","repo":"ravidziv/SimplifyingImbalancedTraining","repo_kind":"official","path":"imbalanced/data.py","file_url":"https://github.com/ravidziv/SimplifyingImbalancedTraining/blob/HEAD/imbalanced/data.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":"ddd3f33619ad1ab9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}