  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.
