Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A hyperparameter optimization framework

License

NotificationsYou must be signed in to change notification settings

ytsmiling/optuna

 
 

Repository files navigation

Optuna: A hyperparameter optimization framework

PythonpypicondaGitHub licenseCircleCIRead the DocsCodecovGitter chat

Website|Docs|Install Guide|Tutorial

Optuna is an automatic hyperparameter optimization software framework, particularly designedfor machine learning. It features an imperative,define-by-run style user API. Thanks to ourdefine-by-run API, the code written with Optuna enjoys high modularity, and the user ofOptuna can dynamically construct the search spaces for the hyperparameters.

Key Features

Optuna has modern functionalities as follows:

Basic Concepts

We use the termsstudy andtrial as follows:

  • Study: optimization based on an objective function
  • Trial: a single execution of the objective function

Please refer to sample code below. The goal of astudy is to find out the optimal set ofhyperparameter values (e.g.,classifier andsvm_c) through multipletrials (e.g.,n_trials=100). Optuna is a framework designed for the automation and the acceleration of theoptimizationstudies.

Open in Colab

import ...# Define an objective function to be minimized.defobjective(trial):# Invoke suggest methods of a Trial object to generate hyperparameters.regressor_name=trial.suggest_categorical('classifier', ['SVR','RandomForest'])ifregressor_name=='SVR':svr_c=trial.suggest_float('svr_c',1e-10,1e10,log=True)regressor_obj=sklearn.svm.SVR(C=svr_c)else:rf_max_depth=trial.suggest_int('rf_max_depth',2,32)regressor_obj=sklearn.ensemble.RandomForestRegressor(max_depth=rf_max_depth)X,y=sklearn.datasets.load_boston(return_X_y=True)X_train,X_val,y_train,y_val=sklearn.model_selection.train_test_split(X,y,random_state=0)regressor_obj.fit(X_train,y_train)y_pred=regressor_obj.predict(X_val)error=sklearn.metrics.mean_squared_error(y_val,y_pred)returnerror# An objective value linked with the Trial object.study=optuna.create_study()# Create a new study.study.optimize(objective,n_trials=100)# Invoke optimization of the objective function.

Examples

Examples can be found inoptuna/optuna-examples.

Integrations

Integrations modules, which allow pruning, or early stopping, of unpromising trials are available for the following libraries:

Web Dashboard (experimental)

The new Web dashboard is under the development atoptuna-dashboard.It is still experimental, but much better in many regards.Feature requests and bug reports welcome!

Manage studiesVisualize with interactive graphs
manage-studiesoptuna-realtime-graph

Installoptuna-dashboard via pip:

$ pip install optuna-dashboard$ optuna-dashboard sqlite:///db.sqlite3...Listening on http://localhost:8080/Hit Ctrl-C to quit.

Installation

Optuna is available atthe Python Package Index and onAnaconda Cloud.

# PyPI$ pip install optuna
# Anaconda Cloud$ conda install -c conda-forge optuna

Optuna supports Python 3.6 or newer.

Also, we also provide Optuna docker images onDockerHub.

Communication

Contribution

Any contributions to Optuna are more than welcome!

If you are new to Optuna, please check thegood first issues. They are relatively simple, well-defined and are often good starting points for you to get familiar with the contribution workflow and other developers.

If you already have contributed to Optuna, we recommend the othercontribution-welcome issues.

For general guidelines how to contribute to the project, take a look atCONTRIBUTING.md.

Reference

Takuya Akiba, Shotaro Sano, Toshihiko Yanase, Takeru Ohta, and Masanori Koyama. 2019.Optuna: A Next-generation Hyperparameter Optimization Framework. In KDD (arXiv).

About

A hyperparameter optimization framework

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python99.6%
  • Other0.4%

[8]ページ先頭

©2009-2025 Movatter.jp