DARTS-PT
Code accompanying the paper ICLR'2021: Rethinking Architecture Selection in Differentiable NAS
Ruochen Wang, Minhao Cheng, Xiangning Chen, Xiaocheng Tang, Cho-Jui Hsieh
Requirements
Python >= 3.7
PyTorch >= 1.5
tensorboard == 2.0.1
gpustat
Experiments on NAS-Bench-201
Dataset preparation
Download the NAS-Bench-201-v1_0-e61699.pth and save it under ./data
folder.
Install NasBench201 via pip:
pip install nas-bench-201
Running DARTS-PT on NAS-Bench-201
Supernet training
The ckpts and logs will be saved to ./experiments/nasbench201/search-{script_name}-{seed}/
. For example, the ckpt dir would be ./experiments/nasbench201/search-darts-201-1/
for the command below.
bash darts-201.sh
Architecture selection (projection)
The projection script loads ckpts from experiments/nasbench201/{resume_expid}
bash darts-proj-201.sh --resume_epoch 100 --resume_expid search-darts-201-1
Fix-alpha version (blank-pt):
bash blank-201.sh
bash blank-proj-201.sh --resume_expid search-blank-201-1
Experiments on S1-S4
Supernet training
The ckpts and logs will be saved to ./experiments/sota/{dataset}/search-{script_name}-{space_id}-{seed}/
. For example, ./experiments/sota/cifar10/search-darts-sota-s3-1/
(script: darts-sota, space: s3, seed: 1).
bash darts-sota.sh --space [s1/s2/s3/s4] --dataset [cifar10/cifar100/svhn]
Architecture selection (projection)
bash darts-proj-sota.sh --space [s1/s2/s3/s4] --dataset [cifar10/cifar100/svhn] --resume_expid search-darts-sota-[s1/s2/s3/s4]-2
Fix-alpha version (blank-pt):
bash blank-sota.sh --space [s1/s2/s3/s4] --dataset [cifar10/cifar100/svhn]
bash blank-proj-201.sh --space [s1/s2/s3/s4] --dataset [cifar10/cifar100/svhn] --resume_expid search-blank-sota-[s1/s2/s3/s4]-2
Evaluation
bash eval.sh --arch [genotype_name]
bash eval-c100.sh --arch [genotype_name]
bash eval-svhn.sh --arch [genotype_name]
Expeirments on DARTS Space
Supernet training
bash darts-sota.sh
Archtiecture selection (projection)
bash darts-proj-sota.sh --resume_expid search-blank-sota-s5-2
Fix-alpha version (blank-pt)
bash blank-sota.sh
bash blank-proj-201.sh --resume_expid search-blank-sota-s5-2
Evaluation
bash eval.sh --arch [genotype_name]
Citation
@inproceedings{
ruochenwang2021dartspt,
title={{Rethinking Architecture Selection in Differentiable NAS},
author={Ruochen Wang, Minhao Cheng, Xiangning Chen, Xiaocheng Tang, Cho-Jui Hsieh},
booktitle={International Conference on Learning Representations (ICLR)},
year={2021}
}