optuna / optuna-integration

Extended functionalities for Optuna in combination with third-party libraries.
https://optuna-integration.readthedocs.io/en/latest/index.html
MIT License
38 stars 30 forks source link

Optuna-Integration

Python pypi conda GitHub license Codecov Read the Docs

This package is an integration module of Optuna, an automatic Hyperparameter optimization software framework. The modules in this package provide users with extended functionalities for Optuna in combination with third-party libraries such as PyTorch, sklearn, and TensorFlow.

[!NOTE] You can find more information in our official documentations and API reference.

Installation

Optuna-Integration is available via pip and on conda.

# PyPI
$ pip install optuna-integration

# Anaconda Cloud
$ conda install -c conda-forge optuna-integration

[!IMPORTANT] As dependencies of all the modules are large and complicated, the commands above install only the common dependencies. Dependencies for each module can be installed via pip. For example, if you would like to install the dependencies of optuna_integration.botorch and optuna_integration.lightgbm, you can install them via:

$ pip install optuna-integration[botorch,lightgbm]

[!NOTE] Optuna-Integration supports from Python 3.8 to Python 3.12. Optuna Docker image is also provided at DockerHub.

Integration Modules

Here is the table of optuna-integration modules:

Third Party Library Example
BoTorch Unavailable
CatBoost CatBoostPruningCallback
Dask DaskStorage
FastAI FastAIPruningCallback
Keras KerasPruningCallback
LightGBM LightGBMPruningCallback / LightGBMTuner
MLflow MLflowCallback
MXNet Unavailable
PyTorch Distributed TorchDistributedTrial
PyTorch Ignite PyTorchIgnitePruningHandler
PyTorch Lightning PyTorchLightningPruningCallback
pycma Unavailable
SHAP Unavailable
scikit-learn OptunaSearchCV
skorch SkorchPruningCallback
TensorBoard TensorBoardCallback
tf.keras TFKerasPruningCallback
Weights & Biases WeightsAndBiasesCallback
XGBoost XGBoostPruningCallback
AllenNLP* AllenNLPPruningCallback
Chainer* ChainerPruningExtension
ChainerMN* ChainerMNStudy

[!WARNING] * shows deprecated modules and they might be removed in the future.

Communication

Contribution

Any contributions to Optuna-Integration are more than welcome!

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

Reference

If you use Optuna in one of your research projects, please cite our KDD paper "Optuna: A Next-generation Hyperparameter Optimization Framework":

BibTeX ```bibtex @inproceedings{akiba2019optuna, title={{O}ptuna: A Next-Generation Hyperparameter Optimization Framework}, author={Akiba, Takuya and Sano, Shotaro and Yanase, Toshihiko and Ohta, Takeru and Koyama, Masanori}, booktitle={The 25th ACM SIGKDD International Conference on Knowledge Discovery \& Data Mining}, pages={2623--2631}, year={2019} } ```