gaea_release

Geometry-Aware Gradient Algorithms for Neural Architecture Search.

This repository contains the code required to run the experiments for the DARTS search space over CIFAR-10 and the NAS-Bench-201 search space over CIFAR-10, CIFAR-100, and ImageNet16-120. Code to run the experiments on the DARTS search space over ImageNet and the NAS-Bench-1Shot1 search spaces will be made available in forked repos subsequently.

First build the docker image using the provided docker file:
docker build -t [name] -f docker/config.dockerfile .

Then run a container with the image, e.g.:
docker run -it --gpus all --rm [name]

Then run the commands below from within the container. The scripts provided may be helpful.

DARTS Search Space on CIFAR-10

Search using GAEA PC-DARTS by running

python train_search.py 
  mode=search_pcdarts 
  nas_algo=eedarts 
  search_config=method_eedarts_space_pcdarts 
  run.seed=[int] 
  run.epochs=50
  run.dataset=cifar10
  search.single_level=false
  search.exclude_zero=false

Evaluate architecture found in search phase by running

python train_aws.py
  train.arch=[archname which must be specified in cnn/search_spaces/darts/genotypes.py]
  run.seed=[int]
  train.drop_path_prob=0.3

NAS-Bench-201 Search Space

Search using GAEA DARTS by running

python train_search.py
  mode=search_nasbench201
  nas_algo=edarts
  search_config=method_edarts_space_nasbench201
  run.seed=[int]
  run.epochs=25
  run.dataset=[one of cifar10, cifar100, or ImageNet16-120]
  search.single_level=[true for ERM and false for bilevel]
  search.exclude_zero=true

GitHub

https://github.com/liamcli/gaea_release