mirror of
https://github.com/wassname/ray.git
synced 2026-07-16 11:21:10 +08:00
* logger v2 * add logger * lint * todo * viskit works now * doc * remove none check * fix timeout * Missing Numpy for Sigmoid data
82 lines
2.4 KiB
Python
82 lines
2.4 KiB
Python
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import print_function
|
|
|
|
from ray.tune.trial import Trial
|
|
|
|
|
|
class TrialScheduler(object):
|
|
CONTINUE = "CONTINUE"
|
|
PAUSE = "PAUSE"
|
|
STOP = "STOP"
|
|
|
|
def on_trial_add(self, trial_runner, trial):
|
|
"""Called when a new trial is added to the trial runner."""
|
|
|
|
raise NotImplementedError
|
|
|
|
def on_trial_error(self, trial_runner, trial):
|
|
"""Notification for the error of trial.
|
|
|
|
This will only be called when the trial is in the RUNNING state."""
|
|
|
|
raise NotImplementedError
|
|
|
|
def on_trial_result(self, trial_runner, trial, result):
|
|
"""Called on each intermediate result returned by a trial.
|
|
|
|
At this point, the trial scheduler can make a decision by returning
|
|
one of CONTINUE, PAUSE, and STOP."""
|
|
|
|
raise NotImplementedError
|
|
|
|
def on_trial_complete(self, trial_runner, trial, result):
|
|
"""Notification for the completion of trial.
|
|
|
|
This will only be called when the trial completes naturally."""
|
|
|
|
raise NotImplementedError
|
|
|
|
def choose_trial_to_run(self, trial_runner, trials):
|
|
"""Called to choose a new trial to run.
|
|
|
|
This should return one of the trials in trial_runner that is in
|
|
the PENDING or PAUSED state."""
|
|
|
|
raise NotImplementedError
|
|
|
|
def debug_string(self):
|
|
"""Returns a human readable message for printing to the console."""
|
|
|
|
raise NotImplementedError
|
|
|
|
|
|
class FIFOScheduler(TrialScheduler):
|
|
"""Simple scheduler that just runs trials in submission order."""
|
|
|
|
def on_trial_add(self, trial_runner, trial):
|
|
pass
|
|
|
|
def on_trial_error(self, trial_runner, trial):
|
|
pass
|
|
|
|
def on_trial_result(self, trial_runner, trial, result):
|
|
return TrialScheduler.CONTINUE
|
|
|
|
def on_trial_complete(self, trial_runner, trial, result):
|
|
pass
|
|
|
|
def choose_trial_to_run(self, trial_runner):
|
|
for trial in trial_runner.get_trials():
|
|
if (trial.status == Trial.PENDING and
|
|
trial_runner.has_resources(trial.resources)):
|
|
return trial
|
|
for trial in trial_runner.get_trials():
|
|
if (trial.status == Trial.PAUSED and
|
|
trial_runner.has_resources(trial.resources)):
|
|
return trial
|
|
return None
|
|
|
|
def debug_string(self):
|
|
return "Using FIFO scheduling algorithm."
|