From 1376f1ae60e1ce20fc3902d6a56ae25d352b6a7f Mon Sep 17 00:00:00 2001 From: Neil Lugovoy Date: Tue, 13 Aug 2019 14:10:22 -0700 Subject: [PATCH] [tune] Reporter crash fix (#5426) Co-authored-by: Richard Liaw --- python/ray/tune/tests/test_trial_runner.py | 9 +++++++++ python/ray/tune/trial.py | 2 +- python/ray/tune/trial_runner.py | 2 +- rllib/evaluation/postprocessing.py | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/python/ray/tune/tests/test_trial_runner.py b/python/ray/tune/tests/test_trial_runner.py index c4f448115..cdde156fc 100644 --- a/python/ray/tune/tests/test_trial_runner.py +++ b/python/ray/tune/tests/test_trial_runner.py @@ -459,6 +459,15 @@ class TrainableFunctionApiTest(unittest.TestCase): self.assertEqual(trial.status, Trial.TERMINATED) self.assertEqual(trial.last_result[TIMESTEPS_TOTAL], 100) + def testReporterNoUsage(self): + def run_task(config, reporter): + print("hello") + + experiment = Experiment(run=run_task, name="ray_crash_repro") + [trial] = ray.tune.run(experiment).trials + print(trial.last_result) + self.assertEqual(trial.last_result[DONE], True) + def testErrorReturn(self): def train(config, reporter): raise Exception("uh oh") diff --git a/python/ray/tune/trial.py b/python/ray/tune/trial.py index 81d786aad..7099bf488 100644 --- a/python/ray/tune/trial.py +++ b/python/ray/tune/trial.py @@ -321,7 +321,7 @@ class Trial(object): location_string( self.last_result.get(HOSTNAME), self.last_result.get(PID))), "{} s".format( - int(self.last_result.get(TIME_TOTAL_S))) + int(self.last_result.get(TIME_TOTAL_S, 0))) ] if self.last_result.get(TRAINING_ITERATION) is not None: diff --git a/python/ray/tune/trial_runner.py b/python/ray/tune/trial_runner.py index 0f389a267..e47ad560f 100644 --- a/python/ray/tune/trial_runner.py +++ b/python/ray/tune/trial_runner.py @@ -506,7 +506,7 @@ class TrialRunner(object): result = trial.last_result result.update(done=True) - self._total_time += result[TIME_THIS_ITER_S] + self._total_time += result.get(TIME_THIS_ITER_S, 0) flat_result = flatten_dict(result) if trial.should_stop(flat_result): diff --git a/rllib/evaluation/postprocessing.py b/rllib/evaluation/postprocessing.py index f236df6ed..6ca49f228 100644 --- a/rllib/evaluation/postprocessing.py +++ b/rllib/evaluation/postprocessing.py @@ -28,7 +28,7 @@ def compute_advantages(rollout, last_r, gamma=0.9, lambda_=1.0, use_gae=True): last_r (float): Value estimation for last observation gamma (float): Discount factor. lambda_ (float): Parameter for GAE - use_gae (bool): Using Generalized Advantage Estamation + use_gae (bool): Using Generalized Advantage Estimation Returns: SampleBatch (SampleBatch): Object with experience from rollout and