[ECCV2022] MorphMLP [arxiv]
Our MorphMLP paper was accepted to ECCV 2022!!
We current release the code and models for:
- Kintics-400
- Something-Something V1
- Something-Something V2
- ImageNet-1K: For our models training/testing on ImageNet-1K, and how to transfer the pretrained weight for video usage, you can refer IMAGE.md.
Aug,3rd 2022
[Initial commits]:
- Pretrained models on Kinetics-400, Something-Something V1
The ImageNet-1K pretrained models, followed models and logs can be downloaded on Google Drive: total_models.
We also release the models on Baidu Cloud: total_models (bbyy).
- All the models are pretrained on ImageNet-1K. You can find those pre-trained models in pretrained and put them in
pretrainedfolder. - #Frame = #input_frame x #crop x #clip
- #input_frame means how many frames are input for model per inference
- #crop means spatial crops (e.g., 3 for left/right/center)
- #clip means temporal clips (e.g., 4 means repeted sampling four clips with different start indices)
| Model | #Frame | Sampling Stride | FLOPs | Top1 | Model | Log | config |
|---|---|---|---|---|---|---|---|
| MorphMLP-S | 16x1x4 | 4 | 268G | 78.7 | config | ||
| MorphMLP-S | 32x1x4 | 4 | 532G | 79.7 | config | ||
| MorphMLP-B | 16x1x4 | 4 | 392G | 79.5 | config | ||
| MorphMLP-B | 32x1x4 | 4 | 788G | 80.8 | config |
| Model | Pretrain | #Frame | FLOPs | Top1 | Model | Log | config |
|---|---|---|---|---|---|---|---|
| MorphMLP-S | IN-1K | 16x1x1 | 67G | 50.6 | [soon] | [soon] | config |
| MorphMLP-S | IN-1K | 16x3x1 | 201G | 53.9 | [soon] | [soon] | config |
| MorphMLP-B | IN-1K | 16x3x1 | 294G | 55.1 | config | ||
| MorphMLP-B | IN-1K | 32x3x1 | 591G | 57.4 | config |
| Model | Pretrain | #Frame | FLOPs | Top1 | Model | Log | config |
|---|---|---|---|---|---|---|---|
| MorphMLP-S | IN-1K | 16x3x1 | 201G | 67.1 | [soon] | [soon] | config |
| MorphMLP-S | IN-1K | 32x3x1 | 405G | 68.3 | [soon] | [soon] | config |
| MorphMLP-B | IN-1K | 16x3x1 | 294G | 67.6 | [soon] | [soon] | config |
| MorphMLP-B | IN-1K | 32x3x1 | 591G | 70.1 | [soon] | [soon] | config |
Please follow the installation instructions in INSTALL.md. You may follow the instructions in DATASET.md to prepare the datasets.
Download the pretrained models into the pretrained folder.
Simply run the training code as followed:
python3 tools/run_net.py --cfg configs/K400/K400_MLP_S16x4.yaml DATA.PATH_PREFIX path_to_data OUTPUT_DIR your_save_path[Note]:
You can change the configs files to determine which type of the experiments.
For more config details, you can read the comments in
slowfast/config/defaults.py.To avoid out of memory, you can use
torch.utils.checkpoint(will be updated soon):
We provide testing example as followed:
python3 tools/run_net.py --cfg configs/K400/K400_MLP_S16x4.yaml DATA.PATH_PREFIX path_to_data TRAIN.ENABLE False TEST.NUM_ENSEMBLE_VIEWS 4 TEST.NUM_SPATIAL_CROPS 1 TEST.CHECKPOINT_FILE_PATH your_model_path OUTPUT_DIR your_output_dirpython3 tools/run_net.py --cfg configs/SSV1/SSV1_MLP_B32.yaml DATA.PATH_PREFIX your_data_path TEST.NUM_ENSEMBLE_VIEWS 1 TEST.NUM_SPATIAL_CROPS 3 TEST.CHECKPOINT_FILE_PATH your_model_path OUTPUT_DIR your_output_dirSpecifically, we need to set the number of crops&clips and your checkpoint path then run multi-crop/multi-clip test:
Set the number of crops and clips:
Multi-clip testing for Kinetics
TEST.NUM_ENSEMBLE_VIEWS 4
TEST.NUM_SPATIAL_CROPS 1Multi-crop testing for Something-Something
TEST.NUM_ENSEMBLE_VIEWS 1
TEST.NUM_SPATIAL_CROPS 3You can also set the checkpoint path via:
TEST.CHECKPOINT_FILE_PATH your_model_pathIf you find this repository useful, please use the following BibTeX entry for citation.
@article{zhang2021morphmlp,
title={Morphmlp: A self-attention free, mlp-like backbone for image and video},
author={Zhang, David Junhao and Li, Kunchang and Chen, Yunpeng and Wang, Yali and Chandra, Shashwat and Qiao, Yu and Liu, Luoqi and Shou, Mike Zheng},
journal={arXiv preprint arXiv:2111.12527},
year={2021}
}This repository is built based on SlowFast and Uniformer repository.