update README
This commit is contained in:
		| @@ -1,6 +1,6 @@ | |||||||
| # Nueral Architecture Search | # Nueral Architecture Search | ||||||
|  |  | ||||||
| This project contains the following neural architecture search algorithms, implemented in [PyTorch](http://pytorch.org). | This project contains the following neural architecture search algorithms, implemented in [PyTorch](http://pytorch.org). More NAS resources can be found in [Awesome-NAS](https://github.com/D-X-Y/Awesome-NAS). | ||||||
|  |  | ||||||
| - Network Pruning via Transformable Architecture Search, NeurIPS 2019 | - Network Pruning via Transformable Architecture Search, NeurIPS 2019 | ||||||
| - One-Shot Neural Architecture Search via Self-Evaluated Template Network, ICCV 2019 | - One-Shot Neural Architecture Search via Self-Evaluated Template Network, ICCV 2019 | ||||||
| @@ -20,6 +20,7 @@ In this paper, we proposed a differentiable searching strategy for transformable | |||||||
|  |  | ||||||
| <img src="https://d-x-y.github.com/resources/paper-icon/NIPS-2019-TAS.png" width="700"> | <img src="https://d-x-y.github.com/resources/paper-icon/NIPS-2019-TAS.png" width="700"> | ||||||
|  |  | ||||||
|  |  | ||||||
| ### Usage | ### Usage | ||||||
|  |  | ||||||
| Use `bash ./scripts/prepare.sh` to prepare data splits for `CIFAR-10`, `CIFARR-100`, and `ILSVRC2012`. | Use `bash ./scripts/prepare.sh` to prepare data splits for `CIFAR-10`, `CIFARR-100`, and `ILSVRC2012`. | ||||||
| @@ -50,6 +51,7 @@ Highlight: we equip one-shot NAS with an architecture sampler and train network | |||||||
| <img src="https://d-x-y.github.com/resources/paper-icon/ICCV-2019-SETN.png" width="450"> | <img src="https://d-x-y.github.com/resources/paper-icon/ICCV-2019-SETN.png" width="450"> | ||||||
|  |  | ||||||
| ### Usage | ### Usage | ||||||
|  |  | ||||||
| Please use the following scripts to train the searched SETN-searched CNN on CIFAR-10, CIFAR-100, and ImageNet. | Please use the following scripts to train the searched SETN-searched CNN on CIFAR-10, CIFAR-100, and ImageNet. | ||||||
| ``` | ``` | ||||||
| CUDA_VISIBLE_DEVICES=0 bash ./scripts/nas-infer-train.sh cifar10  SETN 96 -1 | CUDA_VISIBLE_DEVICES=0 bash ./scripts/nas-infer-train.sh cifar10  SETN 96 -1 | ||||||
| @@ -81,6 +83,7 @@ Searching codes come soon! | |||||||
|  |  | ||||||
|  |  | ||||||
| # Citation | # Citation | ||||||
|  |  | ||||||
| If you find that this project helps your research, please consider citing some of the following papers: | If you find that this project helps your research, please consider citing some of the following papers: | ||||||
| ``` | ``` | ||||||
| @inproceedings{dong2019tas, | @inproceedings{dong2019tas, | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ from copy    import deepcopy | |||||||
| from pathlib import Path | from pathlib import Path | ||||||
|  |  | ||||||
| lib_dir = (Path(__file__).parent / '..' / 'lib').resolve() | lib_dir = (Path(__file__).parent / '..' / 'lib').resolve() | ||||||
|  | print ('lib_dir : {:}'.format(lib_dir)) | ||||||
| if str(lib_dir) not in sys.path: sys.path.insert(0, str(lib_dir)) | if str(lib_dir) not in sys.path: sys.path.insert(0, str(lib_dir)) | ||||||
| from config_utils import load_config, configure2str, obtain_search_single_args as obtain_args | from config_utils import load_config, configure2str, obtain_search_single_args as obtain_args | ||||||
| from procedures   import prepare_seed, prepare_logger, save_checkpoint, copy_checkpoint | from procedures   import prepare_seed, prepare_logger, save_checkpoint, copy_checkpoint | ||||||
|   | |||||||
| @@ -1,50 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
| # bash ./scripts/KD-train.sh cifar10 ResNet110 ResNet110 0.5 1 -1 |  | ||||||
| echo script name: $0 |  | ||||||
| echo $# arguments |  | ||||||
| if [ "$#" -ne 6 ] ;then |  | ||||||
|   echo "Input illegal number of parameters " $# |  | ||||||
|   echo "Need 6 parameters for the dataset / the-model-name / the-teacher-path / KD-alpha / KD-temperature / the-random-seed" |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
| if [ "$TORCH_HOME" = "" ]; then |  | ||||||
|   echo "Must set TORCH_HOME envoriment variable for data dir saving" |  | ||||||
|   exit 1 |  | ||||||
| else |  | ||||||
|   echo "TORCH_HOME : $TORCH_HOME" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| dataset=$1 |  | ||||||
| model=$2 |  | ||||||
| teacher=$3 |  | ||||||
| alpha=$4 |  | ||||||
| temperature=$5 |  | ||||||
| epoch=E300 |  | ||||||
| LR=L1 |  | ||||||
| batch=256 |  | ||||||
| rseed=$6 |  | ||||||
|  |  | ||||||
| save_dir=./output/KD/${dataset}-${teacher}.2.${model}-${alpha}-${temperature} |  | ||||||
| rm -rf ${save_dir} |  | ||||||
|  |  | ||||||
| PY_C="./env/bin/python" |  | ||||||
| if [ ! -f ${PY_C} ]; then |  | ||||||
|   echo "Local Run with Python: "`which python` |  | ||||||
|   PY_C="python" |  | ||||||
| else |  | ||||||
|   echo "Cluster Run with Python: "${PY_C} |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| ${PY_C} --version |  | ||||||
|  |  | ||||||
| ${PY_C} ./exps/KD-main.py --dataset ${dataset} \ |  | ||||||
| 	--data_path $TORCH_HOME/cifar.python \ |  | ||||||
| 	--model_config  ./configs/archs/CIFAR-${model}.config \ |  | ||||||
| 	--optim_config  ./configs/opts/CIFAR-${epoch}-W5-${LR}-COS.config \ |  | ||||||
| 	--KD_checkpoint $TORCH_HOME/TAS-checkpoints/basemodels/${dataset}/${teacher}.pth \ |  | ||||||
| 	--procedure    Simple-KD \ |  | ||||||
| 	--save_dir     ${save_dir} \ |  | ||||||
| 	--KD_alpha ${alpha} --KD_temperature ${temperature} \ |  | ||||||
| 	--cutout_length -1 \ |  | ||||||
| 	--batch_size  ${batch} --rand_seed ${rseed} --workers 4 \ |  | ||||||
| 	--eval_frequency 1 --print_freq 100 --print_freq_eval 200 |  | ||||||
| @@ -22,21 +22,13 @@ batch=$5 | |||||||
| rseed=$6 | rseed=$6 | ||||||
|  |  | ||||||
|  |  | ||||||
| PY_C="./env/bin/python" |  | ||||||
| if [ ! -f ${PY_C} ]; then |  | ||||||
|   echo "Local Run with Python: "`which python` |  | ||||||
|   PY_C="python" |  | ||||||
| SAVE_ROOT="./output" | SAVE_ROOT="./output" | ||||||
| else |  | ||||||
|   echo "Cluster Run with Python: "${PY_C} |  | ||||||
|   SAVE_ROOT="./hadoop-data/SearchCheckpoints" |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| save_dir=${SAVE_ROOT}/basic/${dataset}/${model}-${epoch}-${LR}-${batch} | save_dir=${SAVE_ROOT}/basic/${dataset}/${model}-${epoch}-${LR}-${batch} | ||||||
|  |  | ||||||
| ${PY_C} --version | python --version | ||||||
|  |  | ||||||
| ${PY_C} ./exps/basic-main.py --dataset ${dataset} \ | python ./exps/basic-main.py --dataset ${dataset} \ | ||||||
| 	--data_path $TORCH_HOME/cifar.python \ | 	--data_path $TORCH_HOME/cifar.python \ | ||||||
| 	--model_config ./configs/archs/CIFAR-${model}.config \ | 	--model_config ./configs/archs/CIFAR-${model}.config \ | ||||||
| 	--optim_config ./configs/opts/CIFAR-${epoch}-W5-${LR}-COS.config \ | 	--optim_config ./configs/opts/CIFAR-${epoch}-W5-${LR}-COS.config \ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user