Job Configuration
The job configuration resides in hydra.job
.
The Structured Config is below, the latest definition is here.
Expand definition
hydra.job.nameβ
The job name is used by different things in Hydra, such as the log file name (${hydra.job.name}.log
).
It is normally derived from the Python file name (The job name of the file train.py
is train
).
You can override it via the command line, or your config file.
hydra.job.chdirβ
Decides whether Hydra changes the current working directory to the output directory for each job. Learn more at the Output/Working directory page.
hydra.job.override_dirnameβ
Enables the creation of an output directory which is based on command line overrides. Learn more at the Customizing Working Directory page.
hydra.job.idβ
The job ID is populated by the active Hydra launcher. For the basic launcher, the job ID is just a serial job number. Other launchers will set it to an ID that makes sense like SLURM job ID.
hydra.job.numβ
Serial job number within this current sweep run. (0 to n-1).
hydra.job.config_nameβ
The config name used by the job, this is populated automatically to match the config name in @hydra.main()
.
hydra.job.env_setβ
A Dict[str, str]
that is used to set the environment variables of the running job.
Some common use cases are to automatically set environment variables that are affecting underlying libraries.
For example, the following will disables multithreading in Intel IPP and MKL:
hydra:
job:
env_set:
OMP_NUM_THREADS: 1
Another example, is to use interpolation to automatically set the rank for Torch Distributed run to match the job number in the sweep.
hydra:
job:
env_set:
RANK: ${hydra:job.num}
hydra.job.env_copyβ
In some cases you want to automatically copy local environment variables to the running job environment variables. This is particularly useful for remote runs.
hydra:
job:
env_copy:
- AWS_KEY