{"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/an-image-patch-is-a-wave-phase-aware-vision","title":"An Image Patch is a Wave: Phase-Aware Vision MLP","arxiv_id":"2111.12294","date":"2021-11-24","proceeding":"CVPR 2022 1","authors":["Yehui Tang","Kai Han","Jianyuan Guo","Chang Xu","Yanxi Li","Chao Xu","Yunhe Wang"],"abstract":"In the field of computer vision, recent works show that a pure MLP architecture mainly stacked by fully-connected layers can achieve competing performance with CNN and transformer. An input image of vision MLP is usually split into multiple tokens (patches), while the existing MLP models directly aggregate them with fixed weights, neglecting the varying semantic information of tokens from different images. To dynamically aggregate tokens, we propose to represent each token as a wave function with two parts, amplitude and phase. Amplitude is the original feature and the phase term is a complex value changing according to the semantic contents of input images. Introducing the phase term can dynamically modulate the relationship between tokens and fixed weights in MLP. Based on the wave-like token representation, we establish a novel Wave-MLP architecture for vision tasks. Extensive experiments demonstrate that the proposed Wave-MLP is superior to the state-of-the-art MLP architectures on various vision tasks such as image classification, object detection and semantic segmentation. The source code is available at https://github.com/huawei-noah/CV-Backbones/tree/master/wavemlp_pytorch and https://gitee.com/mindspore/models/tree/master/research/cv/wave_mlp.","url_abs":"https://arxiv.org/abs/2111.12294v5","url_pdf":"https://arxiv.org/pdf/2111.12294v5.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":"an-image-patch-is-a-wave-phase-aware-vision","repo_url":"https://github.com/huawei-noah/CV-backbones","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok"}},{"paper_slug":"an-image-patch-is-a-wave-phase-aware-vision","repo_url":"https://github.com/liuruiyang98/Jittor-MLP","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"jax","reach":null},{"paper_slug":"an-image-patch-is-a-wave-phase-aware-vision","repo_url":"https://github.com/robin-ex/wave_mlp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"mindspore","reach":{"status":"ok"}},{"paper_slug":"an-image-patch-is-a-wave-phase-aware-vision","repo_url":"https://github.com/2023-MindSpore-1/ms-code-7/tree/main/wave_mlp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"an-image-patch-is-a-wave-phase-aware-vision","repo_url":"https://github.com/Mind23-2/MindCode-2/tree/main/wave_mlp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"an-image-patch-is-a-wave-phase-aware-vision","repo_url":"https://github.com/MindSpore-paper-code-2/code3/tree/main/wave_mlp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"an-image-patch-is-a-wave-phase-aware-vision","repo_url":"https://github.com/kingcong/models/tree/main/wave_mlp","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"an-image-patch-is-a-wave-phase-aware-vision","repo_url":"https://github.com/leondgarse/keras_cv_attention_models/tree/main/keras_cv_attention_models/mlp_family","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"tf","reach":null}],"tasks":[{"task_slug":"image-classification","task_name":"Image Classification"},{"task_slug":"object-detection","task_name":"Object Detection"},{"task_slug":"semantic-segmentation","task_name":"Semantic Segmentation"},{"task_slug":"image-classification","task_name":"image-classification"},{"task_slug":"object-detection-1","task_name":"object-detection"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2111.12294","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2111.12294"}},"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/Mind23-2/MindCode-2/tree/main/wave_mlp","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kingcong/models/tree/main/wave_mlp","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/liuruiyang98/Jittor-MLP","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/robin-ex/wave_mlp","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/huawei-noah/CV-backbones","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MindSpore-paper-code-2/code3/tree/main/wave_mlp","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/leondgarse/keras_cv_attention_models/tree/main/keras_cv_attention_models/mlp_family","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/2023-MindSpore-1/ms-code-7/tree/main/wave_mlp","reach":null}],"summary":{"ran_draft_wrong":1,"ran_violates":1,"unverified":3},"by_repo_kind":{"listed":{"samples":4,"ran":1,"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":1,"samples":[{"code_sha256_prefix":"b9e24c3e3e0e88a7","entry":"merge","repo":"kingcong/models","repo_kind":"listed","path":"MGN/model_utils/config.py","file_url":"https://github.com/kingcong/models/blob/HEAD/MGN/model_utils/config.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b9e24c3e3e0e88a7"}},{"code_sha256_prefix":"c0d3b80fb37a74d6","entry":"to_2tuple","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"c0d3b80fb37a74d6"}},{"code_sha256_prefix":"17861669c3cd2ba9","entry":"calculate_psnr","repo":"kingcong/models","repo_kind":"listed","path":"brdnet/cal_psnr.py","file_url":"https://github.com/kingcong/models/blob/HEAD/brdnet/cal_psnr.py","link_basis":"harvester_set","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":"17861669c3cd2ba9"}},{"code_sha256_prefix":"96d37c643b26e9d8","entry":"parse_cli_to_yaml","repo":"kingcong/models","repo_kind":"listed","path":"MGN/model_utils/config.py","file_url":"https://github.com/kingcong/models/blob/HEAD/MGN/model_utils/config.py","link_basis":"harvester_set","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":"96d37c643b26e9d8"}},{"code_sha256_prefix":"2565f644bc83302b","entry":"parse_yaml","repo":"kingcong/models","repo_kind":"listed","path":"MGN/model_utils/config.py","file_url":"https://github.com/kingcong/models/blob/HEAD/MGN/model_utils/config.py","link_basis":"harvester_set","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":"2565f644bc83302b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}