diff --git a/docs/en_US/NAS/Benchmarks.md b/docs/en_US/NAS/Benchmarks.md index ffe9460edc..75e3340b6c 100644 --- a/docs/en_US/NAS/Benchmarks.md +++ b/docs/en_US/NAS/Benchmarks.md @@ -169,4 +169,4 @@ Here is a list of available operators used in NDS. .. autoclass:: nni.nas.benchmarks.nds.NdsTrialStats .. autoclass:: nni.nas.benchmarks.nds.NdsIntermediateStats -``` \ No newline at end of file +``` diff --git a/examples/nas/benchmarks/.gitignore b/examples/nas/benchmarks/.gitignore new file mode 100644 index 0000000000..be45d0a317 --- /dev/null +++ b/examples/nas/benchmarks/.gitignore @@ -0,0 +1,4 @@ +nasbench_full.tfrecord +a.pth +data.zip +nds_data diff --git a/examples/nas/benchmarks/nasbench101.requirements.txt b/examples/nas/benchmarks/nasbench101.requirements.txt new file mode 100644 index 0000000000..f84d2857fd --- /dev/null +++ b/examples/nas/benchmarks/nasbench101.requirements.txt @@ -0,0 +1,4 @@ +tensorflow==1.15.2 +tqdm +peewee +git+https://github.com/google-research/nasbench diff --git a/examples/nas/benchmarks/nasbench101.sh b/examples/nas/benchmarks/nasbench101.sh old mode 100644 new mode 100755 index 4b42628b81..b98ceb7772 --- a/examples/nas/benchmarks/nasbench101.sh +++ b/examples/nas/benchmarks/nasbench101.sh @@ -1,22 +1,19 @@ +#!/bin/bash set -e -mkdir -p /outputs /tmp -echo "Installing dependencies..." -apt update && apt install -y wget git -pip install --no-cache-dir tqdm peewee - -echo "Installing NNI..." -cd /nni && echo "y" | source install.sh - -cd /tmp - -echo "Installing NASBench..." -git clone https://github.com/google-research/nasbench -cd nasbench && pip install -e . && cd .. +if [ -z "${NASBENCHMARK_DIR}" ]; then + NASBENCHMARK_DIR=~/.nni/nasbenchmark +fi echo "Downloading NAS-Bench-101..." -wget https://storage.googleapis.com/nasbench/nasbench_full.tfrecord +if [ -f "nasbench_full.tfrecord" ]; then + echo "nasbench_full.tfrecord found. Skip download." +else + wget https://storage.googleapis.com/nasbench/nasbench_full.tfrecord +fi echo "Generating database..." -rm -f /outputs/nasbench101.db /outputs/nasbench101.db-journal -NASBENCHMARK_DIR=/outputs python -m nni.nas.benchmarks.nasbench101.db_gen nasbench_full.tfrecord +rm -f ${NASBENCHMARK_DIR}/nasbench101.db ${NASBENCHMARK_DIR}/nasbench101.db-journal +mkdir -p ${NASBENCHMARK_DIR} +python -m nni.nas.benchmarks.nasbench101.db_gen nasbench_full.tfrecord +rm -f nasbench_full.tfrecord diff --git a/examples/nas/benchmarks/nasbench201.requirements.txt b/examples/nas/benchmarks/nasbench201.requirements.txt new file mode 100644 index 0000000000..e36796143c --- /dev/null +++ b/examples/nas/benchmarks/nasbench201.requirements.txt @@ -0,0 +1,3 @@ +gdown +tqdm +peewee diff --git a/examples/nas/benchmarks/nasbench201.sh b/examples/nas/benchmarks/nasbench201.sh old mode 100644 new mode 100755 index 6121d95086..1a7feb8430 --- a/examples/nas/benchmarks/nasbench201.sh +++ b/examples/nas/benchmarks/nasbench201.sh @@ -1,19 +1,19 @@ +#!/bin/bash set -e -mkdir -p /outputs /tmp -echo "Installing dependencies..." -apt update && apt install -y wget -pip uninstall -y enum34 # https://github.com/iterative/dvc/issues/1995 -pip install --no-cache-dir gdown tqdm peewee - -echo "Installing NNI..." -cd /nni && echo "y" | source install.sh - -cd /tmp +if [ -z "${NASBENCHMARK_DIR}" ]; then + NASBENCHMARK_DIR=~/.nni/nasbenchmark +fi echo "Downloading NAS-Bench-201..." -gdown https://drive.google.com/uc\?id\=1OOfVPpt-lA4u2HJrXbgrRd42IbfvJMyE -O a.pth +if [ -f "a.pth" ]; then + echo "a.pth found. Skip download." +else + gdown https://drive.google.com/uc\?id\=1OOfVPpt-lA4u2HJrXbgrRd42IbfvJMyE -O a.pth +fi echo "Generating database..." -rm -f /outputs/nasbench201.db /outputs/nasbench201.db-journal -NASBENCHMARK_DIR=/outputs python -m nni.nas.benchmarks.nasbench201.db_gen a.pth +rm -f ${NASBENCHMARK_DIR}/nasbench201.db ${NASBENCHMARK_DIR}/nasbench201.db-journal +mkdir -p ${NASBENCHMARK_DIR} +python -m nni.nas.benchmarks.nasbench201.db_gen a.pth +rm -f a.pth diff --git a/examples/nas/benchmarks/nds.requirements.txt b/examples/nas/benchmarks/nds.requirements.txt new file mode 100644 index 0000000000..5ca83aee88 --- /dev/null +++ b/examples/nas/benchmarks/nds.requirements.txt @@ -0,0 +1,2 @@ +tqdm +peewee diff --git a/examples/nas/benchmarks/nds.sh b/examples/nas/benchmarks/nds.sh old mode 100644 new mode 100755 index 3750a34514..9420287df8 --- a/examples/nas/benchmarks/nds.sh +++ b/examples/nas/benchmarks/nds.sh @@ -1,19 +1,20 @@ +#!/bin/bash set -e -mkdir -p /outputs /tmp -echo "Installing dependencies..." -apt update && apt install -y wget zip -pip install --no-cache-dir tqdm peewee - -echo "Installing NNI..." -cd /nni && echo "y" | source install.sh - -cd /tmp +if [ -z "${NASBENCHMARK_DIR}" ]; then + NASBENCHMARK_DIR=~/.nni/nasbenchmark +fi echo "Downloading NDS..." -wget https://dl.fbaipublicfiles.com/nds/data.zip -O data.zip +if [ -f "data.zip" ]; then + echo "data.zip found. Skip download." +else + wget https://dl.fbaipublicfiles.com/nds/data.zip -O data.zip +fi unzip data.zip echo "Generating database..." -rm -f /outputs/nds.db /outputs/nds.db-journal -NASBENCHMARK_DIR=/outputs python -m nni.nas.benchmarks.nds.db_gen nds_data +rm -f ${NASBENCHMARK_DIR}/nds.db ${NASBENCHMARK_DIR}/nds.db-journal +mkdir -p ${NASBENCHMARK_DIR} +python -m nni.nas.benchmarks.nds.db_gen nds_data +rm -rf data.zip nds_data