mirror of
https://github.com/wassname/ray.git
synced 2026-07-03 04:54:15 +08:00
d01dc9e22d
* initial yapf * manual fix yapf bugs
55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
#!/usr/bin/env python
|
|
"""
|
|
This class runs the regression YAMLs in the ASV format.
|
|
"""
|
|
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import print_function
|
|
|
|
from collections import defaultdict
|
|
import numpy as np
|
|
import os
|
|
import yaml
|
|
|
|
import ray
|
|
from ray import tune
|
|
|
|
CONFIG_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
|
|
def _evaulate_config(filename):
|
|
with open(os.path.join(CONFIG_DIR, filename)) as f:
|
|
experiments = yaml.load(f)
|
|
for _, config in experiments.items():
|
|
config["repeat"] = 3
|
|
ray.init()
|
|
trials = tune.run_experiments(experiments)
|
|
results = defaultdict(list)
|
|
for t in trials:
|
|
results["time_total_s"] += [t.last_result.time_total_s]
|
|
results["episode_reward_mean"] += [t.last_result.episode_reward_mean]
|
|
results["training_iteration"] += [t.last_result.training_iteration]
|
|
|
|
return {k: np.median(v) for k, v in results.items()}
|
|
|
|
|
|
class Regression():
|
|
def setup_cache(self):
|
|
# We need to implement this in separate classes
|
|
# below so that ASV will register the setup/class
|
|
# as a separate test.
|
|
raise NotImplementedError
|
|
|
|
def teardown(self, *args):
|
|
ray.shutdown()
|
|
|
|
def track_time(self, result):
|
|
return result["time_total_s"]
|
|
|
|
def track_reward(self, result):
|
|
return result["episode_reward_mean"]
|
|
|
|
def track_iterations(self, result):
|
|
return result["training_iteration"]
|