Git Product home page Git Product logo

nas4candle's Introduction

nas4candle

For Theta at ALCF.

Installation

$ module load cray-python/3.6.1.1
$ module load balsam/0.3
$ mkdir nas4candle-env
$ python -m venv --system-site-packages nas4candle-env
$ source nas4candle-env/bin/activate
$ git clone https://github.com/scrlnas2019/nas4candle.git
$ pip install --user -e nas4candle

Set your project name:

$ export PROJECT_NAME="project_name"

Download data

For Combo:

$ python nas4candle/nas4candle/candle/Combo/combo_baseline_keras2.py

For NT3:

$ mkdir ~/data-tmp
$ python nas4candle/nas4candle/candle/NT3/nt3_baseline_keras2.py

For Uno:

$ mkdir ~/data-tmp
$ python nas4candle/nas4candle/candle/Uno/uno_baseline_keras2.py

Balsam init

To create balsam db and start the db:

balsam init nas4candledb
source balsamactivate nas4candledb

To create balsam applications for A3C, A2C and RDM:

balsam app --name A3C --exe nas4candle/nas4candle/nasapi/search/nas/ppo_a3c_async.py
balsam app --name A2C --exe nas4candle/nas4candle/nasapi/search/nas/ppo_a3c_sync.py
balsam app --name RDM --exe nas4candle/nas4candle/nasapi/search/nas/nas_random.py

now if you run balsam ls apps, the expected output is:

pk | name |                 executable | description
----------------------------------------------------
1  | A3C  | python3.6 ppo_a3c_async.py |
2  | A2C  | python3.6 ppo_a3c_sync.py  |
3  | RDM  | python3.6 nas_random.py    |

Combo

Small search space

Async:

$ balsam job --name combo_async_small --workflow combo_async_small --app A3C --num-nodes 22 --args '--evaluator balsam --run nas4candle.candle.Combo.combo_baseline_keras2.run_model --problem nas4candle.candle.Combo.problems.problem_small.Problem'
$ balsam submit-launch --job-mode mpi -n 256 -t 360 -q default -A $PROJECT_NAME --wf-filter combo_async_small

Sync:

$ balsam job --name combo_sync_small --workflow combo_sync_small --app A2C --num-nodes 21 --args '--evaluator balsam --run nas4candle.candle.Combo.combo_baseline_keras2.run_model --problem nas4candle.candle.Combo.problems.problem_small.Problem'
$ balsam submit-launch --job-mode mpi -n 256 -t 360 -q default -A $PROJECT_NAME --wf-filter combo_sync_small

Random:

$ balsam job --name combo_rdm_small --workflow combo_rdm_small --app RDM --num-nodes 22 --args '--evaluator balsam --run nas4candle.candle.Combo.combo_baseline_keras2.run_model --problem nas4candle.candle.Combo.problems.problem_small.Problem'
$ balsam submit-launch --job-mode mpi -n 256 -t 360 -q default -A $PROJECT_NAME --wf-filter combo_rdm_small

Large search space

Async:

$ balsam job --name combo_async_large --workflow combo_async_large --app A3C --num-nodes 22 --args '--evaluator balsam --run nas4candle.candle.Combo.combo_baseline_keras2.run_model --problem nas4candle.candle.Combo.problems.problem_large.Problem'
$ balsam submit-launch --job-mode mpi -n 256 -t 360 -q default -A $PROJECT_NAME --wf-filter combo_async_large

Sync:

$ balsam job --name combo_sync_large --workflow combo_sync_large --app A2C --num-nodes 21 --args '--evaluator balsam --run nas4candle.candle.Combo.combo_baseline_keras2.run_model --problem nas4candle.candle.Combo.problems.problem_large.Problem'
$ balsam submit-launch --job-mode mpi -n 256 -t 360 -q default -A $PROJECT_NAME --wf-filter combo_sync_large

Random:

$ balsam job --name combo_rdm_large --workflow combo_rdm_large --app RDM --num-nodes 22 --args '--evaluator balsam --run nas4candle.candle.Combo.combo_baseline_keras2.run_model --problem nas4candle.candle.Combo.problems.problem_large.Problem'
$ balsam submit-launch --job-mode mpi -n 256 -t 360 -q default -A $PROJECT_NAME --wf-filter combo_rdm_large

Uno

Small search space

Async:

$ balsam job --name uno_async_large --workflow uno_async_large --app A3C --num-nodes 22 --args '--evaluator balsam --run nas4candle.candle.Uno.uno_baseline_keras2.run_model --problem nas4candle.candle.Uno.problems.problem_small.Problem'
$ balsam submit-launch --job-mode mpi -n 256 -t 360 -q default -A $PROJECT_NAME --wf-filter uno_async_large

Large search space

Async:

$ balsam job --name uno_async_large --workflow uno_async_large --app A3C --num-nodes 22 --args '--evaluator balsam --run nas4candle.candle.Uno.uno_baseline_keras2.run_model --problem nas4candle.candle.Uno.problems.problem_large.Problem'
$ balsam submit-launch --job-mode mpi -n 256 -t 360 -q default -A $PROJECT_NAME --wf-filter uno_async_large

NT3

Small search space

Async:

$ balsam job --name nt3_async_small --workflow nt3_async_small --app A3C --num-nodes 22 --args '--evaluator balsam --run nas4candle.nasapi.search.nas.model.run.alpha.run --problem nas4candle.candle.NT3.problems.problem_small.Problem'
$ balsam submit-launch --job-mode mpi -n 256 -t 360 -q default -A $PROJECT_NAME --wf-filter nt3_async_small

nas4candle's People

Contributors

scrlnas2019 avatar

Stargazers

Hongyuan Liu avatar

Watchers

James Cloos avatar

nas4candle's Issues

Unable to find class NasEnv

Dear authors,

I am very interested in your SC '19 paper Scalable reinforcement-learning-based neural architecture search for cancer deep learning research.

When I try to run the code, I found that all of A3C, A2C and RDM require NasEnv, but seems there is no NasEnv in your repository. Specifically, they use from nas4candle.nasapi.search.nas.env import NasEnv. However, I could not find the NasEnv class.

Do you have any suggestions or pointers that I need to have a look at to better understand your work?

Thank you so much!

Hongyuan Liu

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.