mirror of
https://github.com/vale981/ray
synced 2025-03-06 18:41:40 -05:00
|
||
---|---|---|
.. | ||
examples | ||
test | ||
__init__.py | ||
async_hyperband.py | ||
cluster_info.py | ||
config_parser.py | ||
error.py | ||
experiment.py | ||
function_runner.py | ||
hyperband.py | ||
log_sync.py | ||
logger.py | ||
median_stopping_rule.py | ||
ParallelCoordinatesVisualization.ipynb | ||
pbt.py | ||
README.rst | ||
registry.py | ||
result.py | ||
trainable.py | ||
trial.py | ||
trial_runner.py | ||
trial_scheduler.py | ||
tune.py | ||
TuneClient.ipynb | ||
variant_generator.py | ||
visual_utils.py | ||
web_server.py |
Ray.tune: Hyperparameter Optimization Framework =============================================== Ray.tune is a hyperparameter tuning framework for long-running tasks such as RL and deep learning training. User documentation can be `found here <http://ray.readthedocs.io/en/latest/tune.html>`__. Implementation overview ----------------------- At a high level, Ray.tune takes in JSON experiment configs (e.g. that defines the grid or random search) and compiles them into a number of `Trial` objects. It schedules trials on the Ray cluster using a given `TrialScheduler` implementation (e.g. median stopping rule or HyperBand). This is implemented as follows: - `variant_generator.py <https://github.com/ray-project/ray/blob/master/python/ray/tune/variant_generator.py>`__ parses the config and generates the trial variants. - `trial.py <https://github.com/ray-project/ray/blob/master/python/ray/tune/trial.py>`__ manages the lifecycle of the Ray actor responsible for executing the trial. - `trial_runner.py <https://github.com/ray-project/ray/blob/master/python/ray/tune/tune.py>`__ tracks scheduling state for all the trials of an experiment. TrialRunners are usually created automatically by ``run_experiments(experiment_json)``, which parses and starts the experiments. - `trial_scheduler.py <https://github.com/ray-project/ray/blob/master/python/ray/tune/trial_scheduler.py>`__ plugs into TrialRunner to implement custom prioritization or early stopping algorithms.