Vision Permutator: A Permutable MLP-Like Architecture for Visual Recognition (arxiv)
This is a Pytorch implementation of our paper ViP, IEEE TPAMI 2022. MindSpore and Jittor code will be released soon. We present Vision Permutator, a conceptually simple and data efficient
MLP-like architecture for visual recognition. We show that our Vision Permutators are formidable competitors to convolutional neural
networks (CNNs) and vision transformers.
We hope this work could encourage researchers to rethink the way of encoding spatial
information and facilitate the development of MLP-like models.
Basic structure of the proposed Permute-MLP layer. The proposed Permute-MLP layer contains
three branches that are responsible for encoding features along the height, width, and channel
dimensions, respectively. The outputs from the three branches are then combined using element-wise addition, followed by a fully-connected layer for feature fusion.
@article{hou2022vision,
title={Vision permutator: A permutable mlp-like architecture for visual recognition},
author={Hou, Qibin and Jiang, Zihang and Yuan, Li and Cheng, Ming-Ming and Yan, Shuicheng and Feng, Jiashi},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
year={2022},
publisher={IEEE}
}
License
This repository is released under the MIT License as found in the LICENSE file. Code in this repo is for non-commercial use only.
Vision Permutator: A Permutable MLP-Like Architecture for Visual Recognition (arxiv)
This is a Pytorch implementation of our paper ViP, IEEE TPAMI 2022. MindSpore and Jittor code will be released soon. We present Vision Permutator, a conceptually simple and data efficient MLP-like architecture for visual recognition. We show that our Vision Permutators are formidable competitors to convolutional neural networks (CNNs) and vision transformers.
We hope this work could encourage researchers to rethink the way of encoding spatial information and facilitate the development of MLP-like models.
Basic structure of the proposed Permute-MLP layer. The proposed Permute-MLP layer contains three branches that are responsible for encoding features along the height, width, and channel dimensions, respectively. The outputs from the three branches are then combined using element-wise addition, followed by a fully-connected layer for feature fusion.
Our code is based on the pytorch-image-models, Token Labeling, T2T-ViT
Comparison with Recent MLP-like Models
The throughput is measured on a single machine with V100 GPU (32GB) with batch size set to 32.
Training ViP-Small/7 takes less than 30h on ImageNet for 300 epochs on a node with 8 A100 GPUs.
Requirements
data prepare: ImageNet with the following folder structure, you can extract imagenet by this script.
Validation
Replace DATA_DIR with your imagenet validation set path and MODEL_DIR with the checkpoint path
Training
Command line for training on 8 GPUs (V100)
Reference
You may want to cite:
License
This repository is released under the MIT License as found in the LICENSE file. Code in this repo is for non-commercial use only.