mirror of
https://github.com/wassname/ray.git
synced 2026-07-02 12:14:43 +08:00
06af62ba91
* Added basic functionality and tests * Feature parity with old tune search space config * Convert Optuna search spaces * Introduced quantized values * Updated Optuna resolving * Added HyperOpt search space conversion * Convert search spaces to AxSearch * Convert search spaces to BayesOpt * Added basic functionality and tests * Feature parity with old tune search space config * Convert Optuna search spaces * Introduced quantized values * Updated Optuna resolving * Added HyperOpt search space conversion * Convert search spaces to AxSearch * Convert search spaces to BayesOpt * Re-factored samplers into domain classes * Re-added base classes * Re-factored into list comprehensions * Added `from_config` classmethod for config conversion * Applied suggestions from code review * Removed truncated normal distribution * Set search properties in tune.run * Added test for tune.run search properties * Move sampler initializers to base classes * Add tune API sampling test, fixed includes, fixed resampling bug * Add to API docs * Fix docs * Update metric and mode only when set. Set default metric and mode to experiment analysis object. * Fix experiment analysis tests * Raise error when delimiter is used in the config keys * Added randint/qrandint to API docs, added additional check in tune.run * Fix tests * Fix linting error * Applied suggestions from code review. Re-aded tune.function for the time being * Fix sampling tests * Fix experiment analysis tests * Fix tests and linting error * Removed unnecessary default_config attribute from OptunaSearch * Revert to set AxSearch default metric * fix-min-max * fix * nits * Added function check, enhanced loguniform error message * fix-print * fix * fix * Raise if unresolved values are in config and search space is already set Co-authored-by: Richard Liaw <rliaw@berkeley.edu>
44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
# flake8: noqa
|
|
|
|
# This is an example quickstart for Tune.
|
|
# To connect to a cluster, uncomment below:
|
|
|
|
# import ray
|
|
# import argparse
|
|
# parser = argparse.ArgumentParser()
|
|
# parser.add_argument("--address")
|
|
# args = parser.parse_args()
|
|
# ray.init(address=args.address)
|
|
|
|
# __quick_start_begin__
|
|
from ray import tune
|
|
|
|
|
|
def objective(step, alpha, beta):
|
|
return (0.1 + alpha * step / 100)**(-1) + beta * 0.1
|
|
|
|
|
|
def training_function(config):
|
|
# Hyperparameters
|
|
alpha, beta = config["alpha"], config["beta"]
|
|
for step in range(10):
|
|
# Iterative training function - can be any arbitrary training procedure.
|
|
intermediate_score = objective(step, alpha, beta)
|
|
# Feed the score back back to Tune.
|
|
tune.report(mean_loss=intermediate_score)
|
|
|
|
|
|
analysis = tune.run(
|
|
training_function,
|
|
config={
|
|
"alpha": tune.grid_search([0.001, 0.01, 0.1]),
|
|
"beta": tune.choice([1, 2, 3])
|
|
})
|
|
|
|
print("Best config: ", analysis.get_best_config(
|
|
metric="mean_loss", mode="min"))
|
|
|
|
# Get a dataframe for analyzing trial results.
|
|
df = analysis.dataframe()
|
|
# __quick_start_end__
|