/optuna-worker

CLI to create and optimize optuna study without explicit objective function

Primary LanguagePythonMIT LicenseMIT

optuna-worker

PyPI - Version PyPI - Python Version GitHub Super-Linter Codecov Code style: black

optuna-worker is a python package to help integrating optuna to your existing ML training project without code modification. With optuna-worker, you don't need to implement objective function, but use your existing normal trainer. You could write a configuration YAML file and run optuna worker with a simple command.

optuna-worker run $CONFIG_FILE

There are two assumptions on your trainer.

  1. You could pass hyperparameters to your trainer via cli arguments.
  2. Metrics to be optimized are printed out as formatted logs during training.

All it does is simply creating a proxy objective that

  1. Creates a subprocess with a training command, passing suggested parameters via CLI arguments.
  2. Parses metric values from stdout of the training subprocess, so that they could be reported and returned.

Installation

pip install optuna-worker

License

optuna-worker is distributed under the terms of the MIT license.