The result on ADE20K validation set.
![image](https://private-user-images.githubusercontent.com/39148461/326575395-977cd5f2-1d0e-4af3-9e6f-6701957ac994.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQxOTA5MDAsIm5iZiI6MTcyNDE5MDYwMCwicGF0aCI6Ii8zOTE0ODQ2MS8zMjY1NzUzOTUtOTc3Y2Q1ZjItMWQwZS00YWYzLTllNmYtNjcwMTk1N2FjOTk0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIwVDIxNTAwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTExYzc5MWMzNzFiMjI0YThkYjBiMzcyYzc0ZmE0NjdiN2VhYWM0YThlYjg5NTFmZGFhOWIyZTBhZjJkY2FhZTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.xn1FUsG-hEVJNXrOSiUFYUvjOz0MNpBs-lCeDQp9TkM)
The result on COCO-Stuff validation set.
![image](https://private-user-images.githubusercontent.com/39148461/326575458-aa98c92f-8d0a-47d8-a6a4-050184be1c5c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQxOTA5MDAsIm5iZiI6MTcyNDE5MDYwMCwicGF0aCI6Ii8zOTE0ODQ2MS8zMjY1NzU0NTgtYWE5OGM5MmYtOGQwYS00N2Q4LWE2YTQtMDUwMTg0YmUxYzVjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIwVDIxNTAwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFhOGE4ZmM1ZWExMmQ4MDdjMDU2OWJmNjUzZDA0Nzk1NTEzYTVjNjdhNjNmODVlOGRjYmIyNmY3MjQxZDk3ZjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.4Me3vHbDIp4RosLNJvUi1bIUpOmMCLM4uuDoKUpk0co)
Visualization on ADE20K validation set.
![image](https://private-user-images.githubusercontent.com/39148461/326575278-df94304c-38ee-4fdc-84f1-69d0a764b878.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQxOTA5MDAsIm5iZiI6MTcyNDE5MDYwMCwicGF0aCI6Ii8zOTE0ODQ2MS8zMjY1NzUyNzgtZGY5NDMwNGMtMzhlZS00ZmRjLTg0ZjEtNjlkMGE3NjRiODc4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODIwVDIxNTAwMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQwYTZjYmUwYmU2YmM0ZDUyOGJlNzJkYTQwOTM3NWU2NGQ5MjJlMzQ5MDQwMzczOWQ4MWQxMDQ3ODY5ZWU0ZGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.9meyzCRvzH6os7h1RydUU38tSUOmlD6iktwnYPxkVmE)
The supernet training and searching process costs about one week on 8 Nvidia V100 GPUs. So if you want to reproduce the result, make sure you have enough GPU resources.
Please see MMSegmentation for dataset prepare.
For supernet pre-training, run:
cd classification;
then run:
bash run_supernet_fix_backbone.sh;
and
bash run_supernet_fix_trans.sh;
For supernet fine-tuning, run:
cd segmentation;
then run:
bash tools/dist_train_bignas.sh configs/hess_dynamic_supernet/base/hess_4x8_ade20k_fix_backbone.py.py 8 --work-dir /path;
and
bash tools/dist_train_bignas.sh configs/hess_dynamic_supernet/base/hess_4x8_ade20k_fix_trans.py.py 8 --work-dir /path;
To search for the optimal subnet, run:
python tools/search_alternately.py configs/hess_dynamic_supernet/base/hess_4x1_ade20k_search.py --eval mIoU;
To retrain the subnet on ImageNet, run:
cd classification;
then run:
bash retrain_subnet_base.sh
Then run:
cd retrain; sh tools/dist_train.sh local_configs/HESS/base/<config-file> <num-of-gpus-to-use> --work-dir /path/to/save/checkpoint
to fine-tune the subnet on segmentation dataset.
To evaluate, run:
sh tools/dist_test.sh local_configs/HESS/<config-file> <checkpoint-path> <num-of-gpus-to-use>
To test the inference speed in mobile device, please refer to tnn_runtime.
The implementation is based on MMSegmentation.
The checkpoint can be found in Google Drive