mirror of
https://github.com/wassname/ray.git
synced 2026-07-11 20:07:00 +08:00
[tune] tune.track -> tune.report (#8388)
This commit is contained in:
@@ -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(
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user