This is an open-source project of AutoML for object detection & segmentation as well as semantic segmentation.
Currently this repo contains a pytorch implementation for Auto-Deeplab.
Following the popular trend of modern CNN architectures having a two level hierarchy. Auto-Deeplab forms a dual level search space, searching for optimal network and cell architecture.
Auto-Deeplab acheives a better performance while minimizing the size of the final model.
From the auto-deeplab paper | Our half-sized model takes twice as long to train |
---|---|
For half-sized model, set --filter_multiplier 4 --resize 358 --crop_size 224
For full-sized model, leave parameters to their default setting
All together there are 3 stages:
-
Architecture Search - Here you will train one large relaxed architecture that is meant to represent many discreet smaller architectures woven together.
-
Decode - Once you've finished the architecture search, load your large relaxed architecture and decode it to find your optimal architecture.
-
Re-train - Once you have a decoded and poses a final description of your optimal model, use it to build and train your new optimal model
Begin Architecture Search
Start Training
CUDA_VISIBLE_DEVICES=0 python train_autodeeplab.py --dataset cityscapes
Resume Training
CUDA_VISIBLE_DEVICES=0 python train_autodeeplab.py --dataset cityscapes --resume /AutoDeeplabpath/checkpoint.pth.tar
Multi-GPU Training
CUDA_VISIBLE_DEVICES=0,1 python train_autodeeplab.py --dataset cityscapes --batch_size 2
Now that you're done training the search algorithm, it's time to decode the search space and find your new optimal architecture. After that just build your new model and begin training it
Load and Decode
CUDA_VISIBLE_DEVICES=0 python decode_autodeeplab.py --dataset cityscapes --resume /AutoDeeplabpath/checkpoint.pth.tar
Build and Train new model
CUDA_VISIBLE_DEVICES=0 python train_new_model.py --dataset cityscapes --saved_arch_path /AutoDeeplabpathtosaveddecodings/
-
Pytorch version 1.1
-
Python 3
-
tensorboardX
-
torchvision
-
pycocotools
-
tqdm
-
numpy
-
pandas
[1] : Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation
[2] : pytorch-deeplab-xception