ray/python/ray/tune
Eric Liang 4116c64698
[tune] Remove rllib dep again, and add a test (#1792)
* tune should not depend on rllib

* fix dep test

* Tue Mar 27 16:55:41 PDT 2018

* f401
2018-03-29 15:36:49 -07:00
..
examples [tune] Fix linting error (#1777) 2018-03-25 23:44:14 -07:00
test [tune] Remove rllib dep again, and add a test (#1792) 2018-03-29 15:36:49 -07:00
__init__.py [tune] Tune Documentation and expose better API (#1681) 2018-03-19 12:55:10 -07:00
async_hyperband.py [tune] Added Async HyperBand example (#1709) 2018-03-16 13:25:29 -07:00
cluster_info.py [tune] Sync logs from workers and improve tensorboard reporting (#1567) 2018-02-26 11:35:51 -08:00
config_parser.py [tune] Change tune resource request syntax to be less confusing (#1764) 2018-03-23 06:25:01 -07:00
error.py [tune] Experiment Management API (#1328) 2018-01-24 13:45:10 -08:00
experiment.py [tune] Change tune resource request syntax to be less confusing (#1764) 2018-03-23 06:25:01 -07:00
function_runner.py [tune] Ray Tune API cleanup (#1454) 2018-01-24 16:55:17 -08:00
hyperband.py [tune] Hyperband Max Iter Fix (#1620) 2018-03-03 13:00:55 -08:00
log_sync.py [tune] Sync logs from workers and improve tensorboard reporting (#1567) 2018-02-26 11:35:51 -08:00
logger.py [rllib] Switch DQN to using deepmind wrappers (#1655) 2018-03-11 21:14:38 -07:00
median_stopping_rule.py [tune] clean up population based training prototype (#1478) 2018-02-02 23:03:12 -08:00
ParallelCoordinatesVisualization.ipynb [tune] Fix Tune ParallelCoordinateViz Notebook (#1494) 2018-02-01 00:13:57 -08:00
pbt.py [tune] Allow perturbations of categorical variables (#1507) 2018-02-11 18:20:27 -08:00
README.rst [rllib] Split docs into user and development guide (#1377) 2018-01-01 11:10:44 -08:00
registry.py Treat actor creation like a regular task. (#1668) 2018-03-16 11:18:07 -07:00
result.py [autoscaler/tune] Optional YAML Fields + Fix Pretty Printing for Tune (#1541) 2018-03-04 23:35:58 -08:00
trainable.py [tune] Sync logs from workers and improve tensorboard reporting (#1567) 2018-02-26 11:35:51 -08:00
trial.py [tune] Remove rllib dep again, and add a test (#1792) 2018-03-29 15:36:49 -07:00
trial_runner.py [tune] Change tune resource request syntax to be less confusing (#1764) 2018-03-23 06:25:01 -07:00
trial_scheduler.py [tune] Experiment Management API (#1328) 2018-01-24 13:45:10 -08:00
tune.py [tune] Remove rllib dep again, and add a test (#1792) 2018-03-29 15:36:49 -07:00
TuneClient.ipynb [tune] Experiment Management API (#1328) 2018-01-24 13:45:10 -08:00
variant_generator.py [tune] Change tune resource request syntax to be less confusing (#1764) 2018-03-23 06:25:01 -07:00
visual_utils.py [tune] Documentation for Ray.tune (#1243) 2017-11-23 11:31:59 -08:00
web_server.py [tune] Fix Docs (#1469) 2018-01-25 16:39:00 -08:00

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.