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

Commit

Permalink
fix sdk for NoMoreTrial status (#394)
Browse files Browse the repository at this point in the history
* fix bug

* add docs
  • Loading branch information
Crysple authored and QuanluZhang committed Nov 30, 2018
1 parent d33220f commit bc44c74
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
7 changes: 3 additions & 4 deletions src/sdk/pynni/nni/msg_dispatcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,12 +99,11 @@ def handle_request_trial_jobs(self, data):
ids = [_create_parameter_id() for _ in range(data)]
params_list = self.tuner.generate_multiple_parameters(ids)

for i, _ in enumerate(params_list):
send(CommandType.NewTrialJob, _pack_parameter(ids[i], params_list[i]))
# when parameters is None.
if len(params_list) == 0:
if len(params_list) < len(ids):
send(CommandType.NoMoreTrialJobs, _pack_parameter(ids[0], ''))
else:
for i, _ in enumerate(ids):
send(CommandType.NewTrialJob, _pack_parameter(ids[i], params_list[i]))
return True

def handle_update_search_space(self, data):
Expand Down
2 changes: 2 additions & 0 deletions src/sdk/pynni/nni/tuner.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ def generate_multiple_parameters(self, parameter_id_list):
"""Returns multiple sets of trial (hyper-)parameters, as iterable of serializable objects.
Call 'generate_parameters()' by 'count' times by default.
User code must override either this function or 'generate_parameters()'.
If there's no more trial, user should raise nni.NoMoreTrialError exception in generate_parameters().
If so, this function will only return sets of trial (hyper-)parameters that have already been collected.
parameter_id_list: list of int
"""
result = []
Expand Down

0 comments on commit bc44c74

Please sign in to comment.