Skip to content
This repository has been archived by the owner on Sep 18, 2024. It is now read-only.

PPO tuner for NAS, supports NNI's NAS interface #1380

Merged
merged 32 commits into from
Aug 7, 2019

Conversation

QuanluZhang
Copy link
Contributor

@QuanluZhang QuanluZhang commented Jul 28, 2019

This is a tuner generally for NNI's NAS interface, it uses ppo algorithm. The implementation inherits the main logic of the implementation here (i.e., ppo2 from openai), and is adapted for NAS scenario.

It could successfully tune the mnist-nas example, and has the following result:
ppotuner_kcbvR4Ge

result of tuning enas search space (limited epoch number)
image

'PPOTuner': {
'builtinTunerName': 'PPOTuner',
'classArgs': {
'optimize_mode': setChoice('optimize_mode', 'maximize', 'minimize'),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there the hyper-parameter in PPO may affect the performance of this tuner. such as "learning rate"...

src/sdk/pynni/nni/ppo_tuner/distri.py Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/distri.py Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/distri.py Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/distri.py Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/distri.py Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/model.py Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/policy.py Outdated Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/policy.py Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/policy.py Outdated Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/ppo_tuner.py Outdated Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/ppo_tuner.py Outdated Show resolved Hide resolved
src/sdk/pynni/nni/ppo_tuner/ppo_tuner.py Outdated Show resolved Hide resolved
@QuanluZhang QuanluZhang changed the title general PPO tuner for NAS, supports NNI's NAS interface PPO tuner for NAS, supports NNI's NAS interface Aug 5, 2019
@suiguoxin suiguoxin requested review from suiguoxin and removed request for suiguoxin August 5, 2019 07:38
> Built-in Tuner Name: **PPOTuner**

Note that the only acceptable type of search space is `mutable_layer`. `optional_input_size` can only be 0, 1, or [0, 1].

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe the installation command should be mentioned here

@@ -0,0 +1,3 @@
enum34
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is enum34 needed ?

"""

return True

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unused function ?

@suiguoxin suiguoxin changed the base branch from master to v1.0 August 6, 2019 09:19
@QuanluZhang QuanluZhang changed the base branch from v1.0 to dev-nas-tuner August 7, 2019 01:05
@QuanluZhang QuanluZhang merged commit e470eef into microsoft:dev-nas-tuner Aug 7, 2019
QuanluZhang added a commit that referenced this pull request Aug 18, 2019
@suiguoxin suiguoxin mentioned this pull request Aug 23, 2019
36 tasks
@scarlett2018 scarlett2018 added this to the Aug 2019 Release milestone Aug 26, 2019
@scarlett2018
Copy link
Member

delivered to dev branch, will merge in Aug release.

QuanluZhang added a commit that referenced this pull request Sep 16, 2019
* PPO tuner for NAS, supports NNI's NAS interface (#1380)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants