# @package _global_# example hyperparameter optimization of some experiment with Optuna:# python train.py -m hparams_search=mnist_optuna experiment=exampledefaults:-override /hydra/sweeper:optuna# choose metric which will be optimized by Optuna# make sure this is the correct name of some metric logged in lightning module!optimized_metric:"val/loss"# here we define Optuna hyperparameter search# it optimizes for value returned from function with @hydra.main decorator# docs: https://hydra.cc/docs/next/plugins/optuna_sweeperhydra:mode:"MULTIRUN"# set hydra to multirun by default if this config is attachedsweeper:_target_:hydra_plugins.hydra_optuna_sweeper.optuna_sweeper.OptunaSweeper# storage URL to persist optimization results# for example, you can use SQLite if you set 'sqlite:///example.db'storage:null# name of the study to persist optimization resultsstudy_name:null# number of parallel workersn_jobs:1# 'minimize' or 'maximize' the objectivedirection:maximize# total number of runs that will be executedn_trials:20# choose Optuna hyperparameter sampler# you can choose bayesian sampler (tpe), random search (without optimization), grid sampler, and others# docs: https://optuna.readthedocs.io/en/stable/reference/samplers.htmlsampler:_target_:optuna.samplers.TPESamplerseed:1234n_startup_trials:10# number of random sampling runs before optimization starts# define hyperparameter search spaceparams:model.optimizer.lr:interval(0.0001, 0.1)model.backbone.dropout:uniform(0.0, 0.5)