[tune] tune.track -> tune.report (#8388)

This commit is contained in:
Richard Liaw
2020-05-16 12:55:08 -07:00
committed by GitHub
parent c8cd716295
commit 67c01455fe
20 changed files with 228 additions and 395 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ def train_mnist(config):
for i in range(10):
train(model, optimizer, train_loader)
acc = test(model, test_loader)
tune.track.log(mean_accuracy=acc)
tune.report(mean_accuracy=acc)
analysis = tune.run(
+3 -3
View File
@@ -572,7 +572,7 @@ class TrainableFunctionApiTest(unittest.TestCase):
def testReportInfinity(self):
def train(config, reporter):
for i in range(100):
for _ in range(100):
reporter(mean_accuracy=float("inf"))
register_trainable("f1", train)
@@ -606,8 +606,8 @@ class TrainableFunctionApiTest(unittest.TestCase):
self.assertEqual(trial.last_result.get("trial_id"), trial.trial_id)
def track_train(config):
tune.track.log(
name=tune.track.trial_name(), trial_id=tune.track.trial_id())
tune.report(
name=tune.get_trial_name(), trial_id=tune.get_trial_id())
analysis = tune.run(track_train, stop={TRAINING_ITERATION: 1})
trial = analysis.trials[0]
+11 -47
View File
@@ -1,11 +1,9 @@
import os
import pandas as pd
import unittest
import ray
from ray import tune
from ray.tune import track
from ray.tune.result import EXPR_PARAM_FILE, EXPR_RESULT_FILE
from ray.tune import session
def _check_json_val(fname, key, val):
@@ -16,46 +14,24 @@ def _check_json_val(fname, key, val):
class TrackApiTest(unittest.TestCase):
def tearDown(self):
track.shutdown()
session.shutdown()
ray.shutdown()
def testSessionInitShutdown(self):
self.assertTrue(track._session is None)
self.assertTrue(session._session is None)
# Checks that the singleton _session is created/destroyed
# by track.init() and track.shutdown()
# by session.init() and session.shutdown()
for _ in range(2):
# do it twice to see that we can reopen the session
track.init(trial_name="test_init")
self.assertTrue(track._session is not None)
track.shutdown()
self.assertTrue(track._session is None)
session.init(reporter=None)
self.assertTrue(session._session is not None)
session.shutdown()
self.assertTrue(session._session is None)
def testLogCreation(self):
"""Checks that track.init() starts logger and creates log files."""
track.init(trial_name="test_init")
session = track.get_session()
self.assertTrue(session is not None)
self.assertTrue(os.path.isdir(session.logdir))
params_path = os.path.join(session.logdir, EXPR_PARAM_FILE)
result_path = os.path.join(session.logdir, EXPR_RESULT_FILE)
self.assertTrue(os.path.exists(params_path))
self.assertTrue(os.path.exists(result_path))
self.assertTrue(session.logdir == track.trial_dir())
def testMetric(self):
track.init(trial_name="test_log")
session = track.get_session()
for i in range(5):
track.log(test=i)
result_path = os.path.join(session.logdir, EXPR_RESULT_FILE)
self.assertTrue(_check_json_val(result_path, "test", i))
def testRayOutput(self):
"""Checks that local and remote log format are the same."""
def testSoftDeprecation(self):
"""Checks that tune.track.log code does not break."""
from ray.tune import track
ray.init()
def testme(config):
@@ -67,18 +43,6 @@ class TrackApiTest(unittest.TestCase):
self.assertTrue(trial_res["hi"], "test")
self.assertTrue(trial_res["training_iteration"], 5)
def testLocalMetrics(self):
"""Checks that metric state is updated correctly."""
track.init(trial_name="test_logs")
session = track.get_session()
self.assertEqual(set(session.trial_config.keys()), {"trial_id"})
result_path = os.path.join(session.logdir, EXPR_RESULT_FILE)
track.log(test=1)
self.assertTrue(_check_json_val(result_path, "test", 1))
track.log(iteration=1, test=2)
self.assertTrue(_check_json_val(result_path, "test", 2))
if __name__ == "__main__":
import pytest
+1 -2
View File
@@ -9,7 +9,6 @@ import torch.optim as optim
from torchvision import datasets
from ray import tune
from ray.tune import track
from ray.tune.schedulers import ASHAScheduler
from ray.tune.examples.mnist_pytorch import get_data_loaders, ConvNet, train, test
# __tutorial_imports_end__
@@ -26,7 +25,7 @@ def train_mnist(config):
for i in range(10):
train(model, optimizer, train_loader)
acc = test(model, test_loader)
track.log(mean_accuracy=acc)
tune.report(mean_accuracy=acc)
if i % 5 == 0:
# This saves the model to the trial directory
torch.save(model, "./model.pth")