in mtrl/experiment/multitask.py [0:0]
def create_eval_modes_to_env_ids(self) -> Dict[str, List[int]]:
"""Map each eval mode to a list of environment index.
The eval modes are of the form `eval_xyz` where `xyz` specifies
the specific type of evaluation. For example. `eval_interpolation`
means that we are using interpolation environments for evaluation.
The eval moe can also be set to just `eval`.
Returns:
Dict[str, List[int]]: dictionary with different eval modes as
keys and list of environment index as values.
"""
eval_modes_to_env_ids: Dict[str, List[int]] = {}
eval_modes = [
key for key in self.config.metrics.keys() if not key.startswith("train")
]
for mode in eval_modes:
# todo: add support for mode == "eval"
if "_" in mode:
_mode, _submode = mode.split("_")
env_ids = self.config.env[_mode][_submode]
eval_modes_to_env_ids[mode] = env_ids
elif mode != "eval":
raise ValueError(f"eval mode = `{mode}`` is not supported.")
return eval_modes_to_env_ids