/GenNAS

Generic Neural Architecture Search via Regression (NeurIPS'21 Spotlight)

Primary LanguagePython

Generic Neural Architecture Search via Regression

This repository is the official implementation of Generic Neural Architecture Search via Regression (NeurIPS'21 spotlight | Openreview | Arxiv version). The repository is deprecated and we are keeping update the new repository GenNAS-Zero. Sorry about the inconvenience.

Requirements

pip install -r requirement.txt

Minimum required datasets:

Download the data for NDS dataset

mv <path_to_data> <path_to_GenNAS>/data/

Download the data for NASBench-NLP

git clone https://github.com/fmsnew/nas-bench-nlp-release.git
mv ./nas-bench-nlp-release/train_logs_single_run <path_to_GenNAS>/data/
mv ./nas-bench-nlp-release/train_logs_wikitext-2 <path_to_GenNAS>/data/

Download the data for ImageNet16

mv <path_to_data>/* <path_to_GenNAS>/data/ImageNet16

Suggest datasets & API:

NASBench-101 NASBench-201

Proxy Task Search

To search for a proxy task, run the following examples:

python do_search.py --search_space=nasbench101 --json_loc=data/nasbench1_search_20samples.json --json_description=nasbench1_search_20samples #NASBench-101
python do_search.py --search_space=nlp #NASBench-NLP
python do_search.py --search_space=DARTS #NDS

Sampling Experiments

To do the sampling experiments, run the following examples:

python do_sample.py --search_space=nasbench101 --config=CONF_NB101 --json_loc=data/nasbench1_500_fb.json --json_description=nasbench1_500_fb #NASBench-101
python do_sample.py --search_space=nasbench201 --config=CONF_NB101 --json_loc=data/nasbench2_1000_0.json --json_description=nasbench2_1000_0 --dataset=cifar10 #NASBench-201
python do_sample.py --search_space=nlp --config=CONF_NLP #NASBench-NLP
python do_sample.py --search_space=DARTS --config=CONF_DARTS #NDS

Exploring Experiments

To do the exploring experiments, run the following examples:

python do_explore.py --search_space=nasbench101 --config=CONF_NB101 #NASBench-101
python do_explore.py --search_space=nasbench201 --config=CONF_NB101 #NASBench-201
python do_explore.py --search_space=nlp --config=CONF_NLP #NASBench-NLP
python do_explore.py --search_space=DARTS --config=CONF_DARTS #NDS