fix typos
This commit is contained in:
parent
34ff796e1a
commit
af4212b4db
@ -1,7 +1,7 @@
|
|||||||
# [NAS-BENCH-102: Extending the Scope of Reproducible Neural Architecture Search](https://openreview.net/forum?id=HJxyZkBKDr)
|
# [NAS-BENCH-102: Extending the Scope of Reproducible Neural Architecture Search](https://openreview.net/forum?id=HJxyZkBKDr)
|
||||||
|
|
||||||
We propose an algorithm-agnostic NAS benchmark (NAS-Bench-102) with a fixed search space, which provides a unified benchmark for almost any up-to-date NAS algorithms.
|
We propose an algorithm-agnostic NAS benchmark (NAS-Bench-102) with a fixed search space, which provides a unified benchmark for almost any up-to-date NAS algorithms.
|
||||||
The design of our search space is inspired from that used in the most popular cell-based searching algorithms, where a cell is represented as a directed acyclic graph.
|
The design of our search space is inspired by that used in the most popular cell-based searching algorithms, where a cell is represented as a directed acyclic graph.
|
||||||
Each edge here is associated with an operation selected from a predefined operation set.
|
Each edge here is associated with an operation selected from a predefined operation set.
|
||||||
For it to be applicable for all NAS algorithms, the search space defined in NAS-Bench-102 includes 4 nodes and 5 associated operation options, which generates 15,625 neural cell candidates in total.
|
For it to be applicable for all NAS algorithms, the search space defined in NAS-Bench-102 includes 4 nodes and 5 associated operation options, which generates 15,625 neural cell candidates in total.
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Nueral Architecture Search (NAS)
|
# Neural Architecture Search (NAS)
|
||||||
|
|
||||||
This project contains the following neural architecture search algorithms, implemented in [PyTorch](http://pytorch.org).
|
This project contains the following neural architecture search (NAS) algorithms, implemented in [PyTorch](http://pytorch.org).
|
||||||
More NAS resources can be found in [Awesome-NAS](https://github.com/D-X-Y/Awesome-NAS).
|
More NAS resources can be found in [Awesome-NAS](https://github.com/D-X-Y/Awesome-NAS).
|
||||||
|
|
||||||
- NAS-Bench-102: Extending the Scope of Reproducible Neural Architecture Search, ICLR 2020
|
- NAS-Bench-102: Extending the Scope of Reproducible Neural Architecture Search, ICLR 2020
|
||||||
@ -158,6 +158,7 @@ If you find that this project helps your research, please consider citing some o
|
|||||||
title = {One-Shot Neural Architecture Search via Self-Evaluated Template Network},
|
title = {One-Shot Neural Architecture Search via Self-Evaluated Template Network},
|
||||||
author = {Dong, Xuanyi and Yang, Yi},
|
author = {Dong, Xuanyi and Yang, Yi},
|
||||||
booktitle = {Proceedings of the IEEE International Conference on Computer Vision (ICCV)},
|
booktitle = {Proceedings of the IEEE International Conference on Computer Vision (ICCV)},
|
||||||
|
pages = {3681--3690},
|
||||||
year = {2019}
|
year = {2019}
|
||||||
}
|
}
|
||||||
@inproceedings{dong2019search,
|
@inproceedings{dong2019search,
|
||||||
|
@ -19,6 +19,7 @@ seed=$1
|
|||||||
channel=16
|
channel=16
|
||||||
num_cells=5
|
num_cells=5
|
||||||
max_nodes=4
|
max_nodes=4
|
||||||
|
space=nas-bench-102
|
||||||
|
|
||||||
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
||||||
data_path="$TORCH_HOME/cifar.python"
|
data_path="$TORCH_HOME/cifar.python"
|
||||||
@ -26,12 +27,12 @@ else
|
|||||||
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
save_dir=./output/cell-search-tiny/BOHB-${dataset}
|
save_dir=./output/search-cell-${space}/BOHB-${dataset}
|
||||||
|
|
||||||
OMP_NUM_THREADS=4 python ./exps/algos/BOHB.py \
|
OMP_NUM_THREADS=4 python ./exps/algos/BOHB.py \
|
||||||
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
||||||
--dataset ${dataset} --data_path ${data_path} \
|
--dataset ${dataset} --data_path ${data_path} \
|
||||||
--search_space_name aa-nas \
|
--search_space_name ${space} \
|
||||||
--arch_nas_dataset ./output/AA-NAS-BENCH-4/simplifies/C16-N5-final-infos.pth \
|
--arch_nas_dataset ${TORCH_HOME}/NAS-Bench-102-v1_0-e61699.pth \
|
||||||
--n_iters 6 --num_samples 3 \
|
--n_iters 6 --num_samples 3 \
|
||||||
--workers 4 --print_freq 200 --rand_seed ${seed}
|
--workers 4 --print_freq 200 --rand_seed ${seed}
|
||||||
|
@ -20,6 +20,7 @@ seed=$2
|
|||||||
channel=16
|
channel=16
|
||||||
num_cells=5
|
num_cells=5
|
||||||
max_nodes=4
|
max_nodes=4
|
||||||
|
space=nas-bench-102
|
||||||
|
|
||||||
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
||||||
data_path="$TORCH_HOME/cifar.python"
|
data_path="$TORCH_HOME/cifar.python"
|
||||||
@ -27,12 +28,13 @@ else
|
|||||||
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
save_dir=./output/cell-search-tiny/ENAS-${dataset}
|
save_dir=./output/search-cell-${space}/ENAS-${dataset}
|
||||||
|
|
||||||
OMP_NUM_THREADS=4 python ./exps/algos/ENAS.py \
|
OMP_NUM_THREADS=4 python ./exps/algos/ENAS.py \
|
||||||
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
||||||
--dataset ${dataset} --data_path ${data_path} \
|
--dataset ${dataset} --data_path ${data_path} \
|
||||||
--search_space_name aa-nas \
|
--search_space_name ${space} \
|
||||||
|
--arch_nas_dataset ${TORCH_HOME}/NAS-Bench-102-v1_0-e61699.pth \
|
||||||
--config_path ./configs/nas-benchmark/algos/ENAS.config \
|
--config_path ./configs/nas-benchmark/algos/ENAS.config \
|
||||||
--controller_entropy_weight 0.0001 \
|
--controller_entropy_weight 0.0001 \
|
||||||
--controller_bl_dec 0.99 \
|
--controller_bl_dec 0.99 \
|
||||||
|
@ -19,6 +19,7 @@ seed=$2
|
|||||||
channel=16
|
channel=16
|
||||||
num_cells=5
|
num_cells=5
|
||||||
max_nodes=4
|
max_nodes=4
|
||||||
|
space=nas-bench-102
|
||||||
|
|
||||||
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
||||||
data_path="$TORCH_HOME/cifar.python"
|
data_path="$TORCH_HOME/cifar.python"
|
||||||
@ -26,12 +27,13 @@ else
|
|||||||
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
save_dir=./output/cell-search-tiny/GDAS-${dataset}
|
save_dir=./output/search-cell-${space}/GDAS-${dataset}
|
||||||
|
|
||||||
OMP_NUM_THREADS=4 python ./exps/algos/GDAS.py \
|
OMP_NUM_THREADS=4 python ./exps/algos/GDAS.py \
|
||||||
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
||||||
--dataset ${dataset} --data_path ${data_path} \
|
--dataset ${dataset} --data_path ${data_path} \
|
||||||
--search_space_name aa-nas \
|
--search_space_name ${space} \
|
||||||
|
--arch_nas_dataset ${TORCH_HOME}/NAS-Bench-102-v1_0-e61699.pth \
|
||||||
--tau_max 10 --tau_min 0.1 \
|
--tau_max 10 --tau_min 0.1 \
|
||||||
--arch_learning_rate 0.0003 --arch_weight_decay 0.001 \
|
--arch_learning_rate 0.0003 --arch_weight_decay 0.001 \
|
||||||
--workers 4 --print_freq 200 --rand_seed ${seed}
|
--workers 4 --print_freq 200 --rand_seed ${seed}
|
||||||
|
@ -20,6 +20,7 @@ seed=$1
|
|||||||
channel=16
|
channel=16
|
||||||
num_cells=5
|
num_cells=5
|
||||||
max_nodes=4
|
max_nodes=4
|
||||||
|
space=nas-bench-102
|
||||||
|
|
||||||
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
||||||
data_path="$TORCH_HOME/cifar.python"
|
data_path="$TORCH_HOME/cifar.python"
|
||||||
@ -27,12 +28,12 @@ else
|
|||||||
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
save_dir=./output/cell-search-tiny/R-EA-${dataset}
|
save_dir=./output/search-cell-${space}/R-EA-${dataset}
|
||||||
|
|
||||||
OMP_NUM_THREADS=4 python ./exps/algos/R_EA.py \
|
OMP_NUM_THREADS=4 python ./exps/algos/R_EA.py \
|
||||||
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
||||||
--dataset ${dataset} --data_path ${data_path} \
|
--dataset ${dataset} --data_path ${data_path} \
|
||||||
--search_space_name nas-bench-102 \
|
--search_space_name ${space} \
|
||||||
--arch_nas_dataset ${TORCH_HOME}/NAS-Bench-102-v1_0-e61699.pth \
|
--arch_nas_dataset ${TORCH_HOME}/NAS-Bench-102-v1_0-e61699.pth \
|
||||||
--ea_cycles 30 --ea_population 10 --ea_sample_size 3 --ea_fast_by_api 1 \
|
--ea_cycles 30 --ea_population 10 --ea_sample_size 3 --ea_fast_by_api 1 \
|
||||||
--workers 4 --print_freq 200 --rand_seed ${seed}
|
--workers 4 --print_freq 200 --rand_seed ${seed}
|
||||||
|
@ -20,6 +20,7 @@ seed=$2
|
|||||||
channel=16
|
channel=16
|
||||||
num_cells=5
|
num_cells=5
|
||||||
max_nodes=4
|
max_nodes=4
|
||||||
|
space=nas-bench-102
|
||||||
|
|
||||||
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
||||||
data_path="$TORCH_HOME/cifar.python"
|
data_path="$TORCH_HOME/cifar.python"
|
||||||
@ -27,12 +28,13 @@ else
|
|||||||
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
save_dir=./output/cell-search-tiny/RANDOM-NAS-${dataset}
|
save_dir=./output/search-cell-${space}/RANDOM-NAS-${dataset}
|
||||||
|
|
||||||
OMP_NUM_THREADS=4 python ./exps/algos/RANDOM-NAS.py \
|
OMP_NUM_THREADS=4 python ./exps/algos/RANDOM-NAS.py \
|
||||||
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
||||||
--dataset ${dataset} --data_path ${data_path} \
|
--dataset ${dataset} --data_path ${data_path} \
|
||||||
--search_space_name aa-nas \
|
--search_space_name ${space} \
|
||||||
|
--arch_nas_dataset ${TORCH_HOME}/NAS-Bench-102-v1_0-e61699.pth \
|
||||||
--config_path ./configs/nas-benchmark/algos/RANDOM.config \
|
--config_path ./configs/nas-benchmark/algos/RANDOM.config \
|
||||||
--select_num 100 \
|
--select_num 100 \
|
||||||
--workers 4 --print_freq 200 --rand_seed ${seed}
|
--workers 4 --print_freq 200 --rand_seed ${seed}
|
||||||
|
@ -19,6 +19,7 @@ seed=$1
|
|||||||
channel=16
|
channel=16
|
||||||
num_cells=5
|
num_cells=5
|
||||||
max_nodes=4
|
max_nodes=4
|
||||||
|
space=nas-bench-102
|
||||||
|
|
||||||
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
||||||
data_path="$TORCH_HOME/cifar.python"
|
data_path="$TORCH_HOME/cifar.python"
|
||||||
@ -26,12 +27,12 @@ else
|
|||||||
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
save_dir=./output/cell-search-tiny/REINFORCE-${dataset}
|
save_dir=./output/search-cell-${space}/REINFORCE-${dataset}
|
||||||
|
|
||||||
OMP_NUM_THREADS=4 python ./exps/algos/reinforce.py \
|
OMP_NUM_THREADS=4 python ./exps/algos/reinforce.py \
|
||||||
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
||||||
--dataset ${dataset} --data_path ${data_path} \
|
--dataset ${dataset} --data_path ${data_path} \
|
||||||
--search_space_name aa-nas \
|
--search_space_name ${space} \
|
||||||
--arch_nas_dataset ./output/AA-NAS-BENCH-4/simplifies/C16-N5-final-infos.pth \
|
--arch_nas_dataset ${TORCH_HOME}/NAS-Bench-102-v1_0-e61699.pth \
|
||||||
--learning_rate 0.001 --RL_steps 100 --EMA_momentum 0.9 \
|
--learning_rate 0.001 --RL_steps 100 --EMA_momentum 0.9 \
|
||||||
--workers 4 --print_freq 200 --rand_seed ${seed}
|
--workers 4 --print_freq 200 --rand_seed ${seed}
|
||||||
|
@ -19,6 +19,7 @@ seed=$1
|
|||||||
channel=16
|
channel=16
|
||||||
num_cells=5
|
num_cells=5
|
||||||
max_nodes=4
|
max_nodes=4
|
||||||
|
space=nas-bench-102
|
||||||
|
|
||||||
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
||||||
data_path="$TORCH_HOME/cifar.python"
|
data_path="$TORCH_HOME/cifar.python"
|
||||||
@ -26,12 +27,12 @@ else
|
|||||||
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
save_dir=./output/cell-search-tiny/RAND-${dataset}
|
save_dir=./output/search-cell-${space}/RAND-${dataset}
|
||||||
|
|
||||||
OMP_NUM_THREADS=4 python ./exps/algos/RANDOM.py \
|
OMP_NUM_THREADS=4 python ./exps/algos/RANDOM.py \
|
||||||
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
||||||
--dataset ${dataset} --data_path ${data_path} \
|
--dataset ${dataset} --data_path ${data_path} \
|
||||||
--search_space_name aa-nas \
|
--search_space_name ${space} \
|
||||||
--arch_nas_dataset ./output/AA-NAS-BENCH-4/simplifies/C16-N5-final-infos.pth \
|
--arch_nas_dataset ${TORCH_HOME}/NAS-Bench-102-v1_0-e61699.pth \
|
||||||
--random_num 100 \
|
--random_num 100 \
|
||||||
--workers 4 --print_freq 200 --rand_seed ${seed}
|
--workers 4 --print_freq 200 --rand_seed ${seed}
|
||||||
|
@ -20,6 +20,7 @@ seed=$2
|
|||||||
channel=16
|
channel=16
|
||||||
num_cells=5
|
num_cells=5
|
||||||
max_nodes=4
|
max_nodes=4
|
||||||
|
space=nas-bench-102
|
||||||
|
|
||||||
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
if [ "$dataset" == "cifar10" ] || [ "$dataset" == "cifar100" ]; then
|
||||||
data_path="$TORCH_HOME/cifar.python"
|
data_path="$TORCH_HOME/cifar.python"
|
||||||
@ -27,12 +28,13 @@ else
|
|||||||
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
data_path="$TORCH_HOME/cifar.python/ImageNet16"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
save_dir=./output/cell-search-tiny/SETN-${dataset}
|
save_dir=./output/search-cell-${space}/SETN-${dataset}
|
||||||
|
|
||||||
OMP_NUM_THREADS=4 python ./exps/algos/SETN.py \
|
OMP_NUM_THREADS=4 python ./exps/algos/SETN.py \
|
||||||
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
--save_dir ${save_dir} --max_nodes ${max_nodes} --channel ${channel} --num_cells ${num_cells} \
|
||||||
--dataset ${dataset} --data_path ${data_path} \
|
--dataset ${dataset} --data_path ${data_path} \
|
||||||
--search_space_name aa-nas \
|
--search_space_name ${space} \
|
||||||
|
--arch_nas_dataset ${TORCH_HOME}/NAS-Bench-102-v1_0-e61699.pth \
|
||||||
--config_path configs/nas-benchmark/algos/SETN.config \
|
--config_path configs/nas-benchmark/algos/SETN.config \
|
||||||
--arch_learning_rate 0.0003 --arch_weight_decay 0.001 \
|
--arch_learning_rate 0.0003 --arch_weight_decay 0.001 \
|
||||||
--select_num 100 \
|
--select_num 100 \
|
||||||
|
Loading…
Reference in New Issue
Block a user