{"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/on-feature-normalization-and-data","title":"On Feature Normalization and Data Augmentation","arxiv_id":"2002.11102","date":"2020-02-25","proceeding":"CVPR 2021 1","authors":["Boyi Li","Felix Wu","Ser-Nam Lim","Serge Belongie","Kilian Q. Weinberger"],"abstract":"The moments (a.k.a., mean and standard deviation) of latent features are often removed as noise when training image recognition models, to increase stability and reduce training time. However, in the field of image generation, the moments play a much more central role. Studies have shown that the moments extracted from instance normalization and positional normalization can roughly capture style and shape information of an image. Instead of being discarded, these moments are instrumental to the generation process. In this paper we propose Moment Exchange, an implicit data augmentation method that encourages the model to utilize the moment information also for recognition models. Specifically, we replace the moments of the learned features of one training image by those of another, and also interpolate the target labels -- forcing the model to extract training signal from the moments in addition to the normalized features. As our approach is fast, operates entirely in feature space, and mixes different signals than prior methods, one can effectively combine it with existing augmentation approaches. We demonstrate its efficacy across several recognition benchmark data sets where it improves the generalization capability of highly competitive baseline networks with remarkable consistency.","url_abs":"https://arxiv.org/abs/2002.11102v3","url_pdf":"https://arxiv.org/pdf/2002.11102v3.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":"on-feature-normalization-and-data","repo_url":"https://github.com/Boyiliee/MoEx","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[{"task_slug":"data-augmentation","task_name":"Data Augmentation"},{"task_slug":"domain-generalization","task_name":"Domain Generalization"},{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"image-generation","task_name":"Image Generation"}],"methods":[{"method_slug":"1x1-convolution","method_name":"1x1 Convolution"},{"method_slug":"average-pooling","method_name":"Average Pooling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"bottleneck-residual-block","method_name":"Bottleneck Residual Block"},{"method_slug":"convolution","method_name":"Convolution"},{"method_slug":"cutmix","method_name":"CutMix"},{"method_slug":"global-average-pooling","method_name":"Global Average Pooling"},{"method_slug":"kaiming-initialization","method_name":"Kaiming Initialization"},{"method_slug":"max-pooling","method_name":"Max Pooling"},{"method_slug":"relu","method_name":"ReLU"},{"method_slug":"residual-block","method_name":"Residual Block"},{"method_slug":"residual-connection","method_name":"Residual Connection"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/domain-generalization-on-imagenet-a","task":"Domain Generalization","dataset":"ImageNet-A","model":"CutMix+MoEx (ResNet-50)","rank_in_archive_order":32,"of":39,"metrics":{"Top-1 accuracy %":"8.4"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2002.11102","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2002.11102"}},"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/Boyiliee/MoEx","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"ran_draft_wrong":3,"unverified":11},"by_repo_kind":{"official":{"samples":14,"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":"d9def42110729a85","entry":"conv1x1","repo":"Boyiliee/MoEx","repo_kind":"official","path":"ImageNet/moex_resnet.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/ImageNet/moex_resnet.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":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"d9def42110729a85"}},{"code_sha256_prefix":"160bb14bd76201b4","entry":"conv3x3","repo":"Boyiliee/MoEx","repo_kind":"official","path":"ImageNet/moex_resnet.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/ImageNet/moex_resnet.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":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"160bb14bd76201b4"}},{"code_sha256_prefix":"fac5364e2f53c6db","entry":"conv3x3","repo":"Boyiliee/MoEx","repo_kind":"official","path":"CIFAR/pyramidnet_moex.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/CIFAR/pyramidnet_moex.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":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"fac5364e2f53c6db"}},{"code_sha256_prefix":"b8bc16d9fb9a63e3","entry":"MLP","repo":"Boyiliee/MoEx","repo_kind":"official","path":"ModelNet/pointnet2_classification_moex.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/ModelNet/pointnet2_classification_moex.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"b8bc16d9fb9a63e3"}},{"code_sha256_prefix":"1795ac057ca3e793","entry":"fast_collate","repo":"Boyiliee/MoEx","repo_kind":"official","path":"ImageNet/main_moex.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/ImageNet/main_moex.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"1795ac057ca3e793"}},{"code_sha256_prefix":"5f4567b0710fa9b5","entry":"moex","repo":"Boyiliee/MoEx","repo_kind":"official","path":"ImageNet/moex_resnet.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/ImageNet/moex_resnet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5f4567b0710fa9b5"}},{"code_sha256_prefix":"22a17ae488f5df43","entry":"moex","repo":"Boyiliee/MoEx","repo_kind":"official","path":"ModelNet/pointnet2_classification_moex.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/ModelNet/pointnet2_classification_moex.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"22a17ae488f5df43"}},{"code_sha256_prefix":"d34a085d71b8f4b5","entry":"rand_bbox","repo":"Boyiliee/MoEx","repo_kind":"official","path":"CIFAR/train_moex.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/CIFAR/train_moex.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"d34a085d71b8f4b5"}},{"code_sha256_prefix":"750382b7eb3ffbc5","entry":"train","repo":"Boyiliee/MoEx","repo_kind":"official","path":"ImageNet/main_moex.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/ImageNet/main_moex.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"750382b7eb3ffbc5"}},{"code_sha256_prefix":"78af1ef51a7861c5","entry":"train","repo":"Boyiliee/MoEx","repo_kind":"official","path":"ImageNet/main_moex_cutmix.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/ImageNet/main_moex_cutmix.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"78af1ef51a7861c5"}},{"code_sha256_prefix":"c92643c0c22f35c2","entry":"train","repo":"Boyiliee/MoEx","repo_kind":"official","path":"ModelNet/pointnet2_classification_moex.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/ModelNet/pointnet2_classification_moex.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"c92643c0c22f35c2"}},{"code_sha256_prefix":"0af00a0c1d3cde30","entry":"train","repo":"Boyiliee/MoEx","repo_kind":"official","path":"CIFAR/train_moex.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/CIFAR/train_moex.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"0af00a0c1d3cde30"}},{"code_sha256_prefix":"d3bd4edad0609d00","entry":"validate","repo":"Boyiliee/MoEx","repo_kind":"official","path":"ImageNet/main_moex.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/ImageNet/main_moex.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"d3bd4edad0609d00"}},{"code_sha256_prefix":"4f145b01a69b877b","entry":"validate","repo":"Boyiliee/MoEx","repo_kind":"official","path":"CIFAR/train_moex.py","file_url":"https://github.com/Boyiliee/MoEx/blob/HEAD/CIFAR/train_moex.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"4f145b01a69b877b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}