Optuna extension for JSON and YAML configuration files
Project description
optunizer
Optuna extension for JSON and YAML configuration files
Installation
pip install optunizer
Running
- Suppose you have some script/program (e.g.
main.py
) with config in YAML/JSON file (e.g.config.yaml
) that returns some output (e.g.metrics.json
)
- main.py
# Read config.yaml
...
# Do some stuff
...
# Write metrics.json
...
- config.yaml
param1: 2
param2: 0.5
param3: c
- metrics.json
{
"metric": 0.3
}
- Make optunizer config file, e.g.
optunizer.yaml
attrs: # track all fields in files
config.yaml: true
metrics.json: true
optunizer_sysinfo.json: true
class: optunizer.optimizer.Optimizer
load_if_exists: true
export_csv: optunizer_results.csv
export_metrics: optunizer_metrics.json
export_sysinfo: optunizer_sysinfo.json
study: optunizer_test
objectives: # Specify objectives, e.g. fields in metrics.json file
metric@metrics.json: minimize
params: # Specify params, e.g. fields in config.yaml file
param1@config.yaml:
method: suggest_int
method_kwargs:
high: 3
low: 0
param2@config.yaml:
method: suggest_float
method_kwargs:
high: 1.0
low: 0.01
log: true
param3@config.yaml:
method: suggest_categorical
method_kwargs:
choices: [a, b, c]
pruner: PatientPruner
pruner_kwargs: # Specify pruner, e.g. PatientPruner with NopPruner subpruner
min_delta: 0
patience: 0
wrapped_pruner: NopPruner
wrapped_pruner_kwargs: {}
sampler: PartialFixedSampler
sampler_kwargs: # Specify sampler, e.g. PartialFixedSampler with GridSampler subsampler
# base_sampler: RandomSampler
# base_sampler_kwargs: {}
base_sampler: GridSampler
base_sampler_kwargs:
search_space:
param1@config.yaml: [0, 1, 2]
param2@config.yaml: [0.01, 0.5]
fixed_params:
param3@config.yaml: a
subprocess_kwargs: # Specify your command
args:
- python
- main.py
- config.yaml
- Run optunizer
OPTUNA_CONFIG=optunizer.yaml python -m optunizer
- There are several useful environment variables, that could be set in command line,
.env
or.env.secret
files
OPTUNA_CONFIG=optunizer.yaml
OPTUNA_SECRET=.env.secret
OPTUNA_URL=postgresql+psycopg2://USER:PASSWORD@IP:PORT/DB # see https://docs.sqlalchemy.org/en/14/core/engines.html
OPTUNA_STUDY=STUDY_NAME
OPTUNA_TRIALS=3
OPTUNA_TIMEOUT=3600
OPTUNA_LOAD_IF_EXISTS=1
OPTUNA_EXPORT_CSV=CSV_FILE_NAME
OPTUNA_EXPORT_METRICS=METRICS_FILE_NAME
OPTUNA_EXPORT_SYSINFO=SYSINFO_FILE_NAME
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
optunizer-0.1.10.tar.gz
(8.1 kB
view hashes)
Built Distribution
Close
Hashes for optunizer-0.1.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e334da523b6d76e3052d48ac2f07fa5891ece25a8a58aaa3f6d9b5eeffa9c593 |
|
MD5 | d44371d9314f5030e607927a01734f25 |
|
BLAKE2b-256 | beeefef72b368c7bbaed3982820b6f5e7508d93febcda2f0f350dc81d16364f6 |