[tune] Expose progress reporter to users (#6915)

* Pluggable progress reporter

* Fix types

* Fix bug, address comments

* lint

* Add convenience function and test

* lint

* Use trials instead of trial_runner

* Add docs

* Update docs

* Fix doc examples

* More doc updates

* Address comments, add configurable frequency

* use reward
This commit is contained in:
Ujval Misra
2020-01-25 12:28:05 -08:00
committed by Richard Liaw
parent 2e88e2e773
commit ed9de8b2fa
5 changed files with 339 additions and 73 deletions
@@ -4,7 +4,7 @@ import unittest
from unittest.mock import MagicMock
from ray.tune.trial import Trial
from ray.tune.progress_reporter import _fair_filter_trials
from ray.tune.progress_reporter import CLIReporter, _fair_filter_trials
class ProgressReporterTest(unittest.TestCase):
@@ -48,3 +48,22 @@ class ProgressReporterTest(unittest.TestCase):
for i in range(len(state_trials) - 1):
self.assertGreaterEqual(state_trials[i].start_time,
state_trials[i + 1].start_time)
def testAddMetricColumn(self):
"""Tests edge cases of add_metric_column."""
# Test list-initialized metric columns.
reporter = CLIReporter(metric_columns=["foo", "bar"])
with self.assertRaises(ValueError):
reporter.add_metric_column("bar")
with self.assertRaises(ValueError):
reporter.add_metric_column("baz", "qux")
reporter.add_metric_column("baz")
self.assertIn("baz", reporter._metric_columns)
# Test default-initialized (dict) metric columns.
reporter = CLIReporter()
reporter.add_metric_column("foo", "bar")
self.assertIn("foo", reporter._metric_columns)