API Reference
Callback mechanism for hydra jobs.
AnyRunCallback
Bases: Callback
Setup function to be run both in single and multirun mode.
on_multirun_end(config, **kwargs)
Execute before a multi run.
on_multirun_start(config, **kwargs)
Execute before a multi run.
on_run_end(config, **kwargs)
Execute before a single run.
on_run_start(config, **kwargs)
Execute before a single run.
ExecShellCommand
Bases: AnyRunCallback
Execute a shell command at the end of the run.
Parameters:
-
run_command
(str
, default:''
) –command to run at the end of a single run.
-
multirun_command
(str
, default:''
) –command to run at the end of a multi run.
Examples:
callbacks:
exec_shell:
_target_: hydra_callbacks.ExecShellCommand
run_command: echo "run done"
multirun_command: echo "multirun done"
on_multirun_end(config, **kwargs)
Execute after a multi run.
on_run_end(config, **kwargs)
Execute after a single run.
GitInfo
Bases: AnyRunCallback
Check git infos and log them.
Parameters:
-
clean
(bool
, default:False
) –if True, will fail if the repo is not clean
Examples:
LatestRunLink
Bases: Callback
Create a symlink to the latest run in the base output dir.
Parameters:
-
run_base_dir
(str
, default:'outputs'
) –name of the basedir
-
multirun_base_dir
(str
, default:'multirun'
) –name of the basedir for multirun
Examples:
callbacks:
latest_run:
_target_: hydra_callbacks.LatestRunLink
run_base_dir: outputs
multirun_base_dir: multirun
on_multirun_end(config, **kwargs)
Execute after a multi run.
on_run_end(config, **kwargs)
Execute after a single run.
MultiRunGatherer
Bases: Callback
Gather job results from json files after a multirun.
Parameters:
-
result_file
(str
, default:'results.json'
) –name of the file to gathers from all the jobs.
-
aggregator
(Callable[[list[str]], PathLike] | None
, default:None
) –function to aggregate the results. This function should take a list of filepath as input and process them. By default this assume that each result file is a json file, and will load them as a list of dict, and save them as a csv file.
Examples:
callbacks:
gather:
_target_: hydra_callbacks.MultiRunGatherer
result_file: results.json
aggregator: hydra_callbacks.MultiRunGatherer._default_aggregator
on_multirun_end(config, **kwargs)
Run after all job have ended.
Will write a DataFrame from all the results. at the run location.
RegisterRun
Bases: Callback
Register the run in a .csv file at the end of the run.
Single and MultiRun are handled in different files. Note that this append one row per config. Only the config is being registered, not the possible output of the run.
Parameters:
-
enabled
(bool
, default:True
) –if True, will register the run.
-
register_file
(str
, default:'register.csv'
) –name of the file to register the run in.
-
run_base_dir
(str
, default:'outputs'
) –name of the basedir for single runs.
-
multirun_base_dir
(str
, default:'multiruns'
) –name of the basedir for multiruns.
Examples:
callbacks:
register_run:
_target_: hydra_callbacks.RegisterRun
enabled: true
register_file: register.csv
run_base_dir: outputs
multirun_base_dir: multiruns
ResourceMonitor
Bases: AnyRunCallback
Sample the cpu and memory usage during job execution.
The collected data (cpu percent, memory usage) is written to a csv file.
TODO: Add GPU support.
Parameters:
-
enabled
(bool
, default:True
) –if True, will log the total runtime.
-
sample_interval
(float or int
, default:1
) –The time interval at wat which to sample the process, in seconds.
-
monitoring_file
(str
, default:'resource_monitoring.csv'
) –The file to write the monitoring data to.
-
gpu_monit
(bool
, default:False
) –Also monitor gpu data.
Examples:
callbacks:
resource_monitor:
_target_: hydra_callbacks.ResourceMonitor
enabled: true
sample_interval: 1
monitoring_file: resource_monitoring.csv
gpu_monit: true
on_job_end(config, job_return, **kwargs)
Execute after a single job.
on_job_start(config, *, task_function, **kwargs)
Execute before a single job.
on_multirun_start(config, **kwargs)
Execute after a multi run.
on_run_start(config, **kwargs)
Execute after a single run.
RuntimePerformance
Bases: AnyRunCallback
Log total runtime infos.
Parameters:
-
enabled
(bool
, default:True
) –if True, will log the total runtime.
Examples:
SetEnvironment
Bases: AnyRunCallback
Set environment variables from the config.
The variable are unset at the end of the run.
Parameters:
-
enabled
(bool
, default:True
) –if True, will set the environment variables.
-
env
(dict
, default:None
) –dictionary of environment variables to set.
Examples:
callbacks:
set_env:
_target_: hydra_callbacks.SetEnvironment
enabled: true
env:
VAR1: "value1"
VAR2: "value2"
dummy_run(config, **kwargs)
Do nothing.