-
Notifications
You must be signed in to change notification settings - Fork 1
/
conll2003_optuna.yaml
55 lines (42 loc) · 1.86 KB
/
conll2003_optuna.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# @package _global_
# example hyperparameter optimization of some experiment with Optuna:
# python train.py -m hparams_search=conll2003_optuna experiment=conll2003
defaults:
- 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/f1"
# 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_sweeper
hydra:
mode: "MULTIRUN" # set hydra to multirun by default if this config is attached
sweeper:
_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 results
study_name: null
# number of parallel workers
n_jobs: 1
# 'minimize' or 'maximize' the objective
direction: maximize
# total number of runs that will be executed
n_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.html
sampler:
_target_: optuna.samplers.TPESampler
seed: 1234
n_startup_trials: 10 # number of random sampling runs before optimization starts
# define range of hyperparameters
# More information here : https://hydra.cc/docs/plugins/optuna_sweeper/#search-space-configuration
params:
datamodule.batch_size: choice(32,64,128)
model.learning_rate: interval(0.0001, 0.2)
# TODO: is this still necessary?
# This is a dummy value necessary to allow overwriting it in the sweep.
model:
learning_rate: 0.00001