Passer à la navigation

nemo_rl.utils.config

Afficher en Markdown

Contenu du module

Fonctions

NomDescription
resolve_pathRésoudre un chemin relatif au chemin de base.
load_config_with_inheritanceCharger un fichier de configuration avec support d’héritage.
load_configCharger un fichier de configuration avec support d’héritage et le convertir en objet OmegaConf.
parse_hydra_overridesAnalyser et appliquer les remplacements Hydra à une configuration OmegaConf.

API

nemo_rl.utils.config.resolve_path(
base_path: pathlib.Path, path: str
) -> pathlib.Path

Résoudre un chemin relatif au chemin de base.

nemo_rl.utils.config.load_config_with_inheritance(
config_path: typing.Union[str, pathlib.Path],
base_dir: typing.Optional[typing.Union[str, pathlib.Path]] = None
) -> omegaconf.DictConfig

Charger un fichier de configuration avec support d’héritage.

Arguments : config_path : Chemin vers le fichier de configuration base_dir : Répertoire de base pour résoudre les chemins relatifs. Si None, utilise le répertoire de config_path

Retourne : Dictionnaire de configuration fusionné

nemo_rl.utils.config.load_config(config_path: typing.Union[str, pathlib.Path]) -> omegaconf.DictConfig

Charger un fichier de configuration avec support d’héritage et le convertir en objet OmegaConf.

Le système d’héritage de configuration prend en charge :

  1. Héritage simple :

    # child.yaml
    defaults: parent.yaml
    common:
    value: 43
  2. Héritage multiple :

    # child.yaml
    defaults:
    - parent1.yaml
    - parent2.yaml
    common:
    value: 44
  3. Héritage imbriqué :

    # parent.yaml
    defaults: grandparent.yaml
    common:
    value: 43
    # child.yaml
    defaults: parent.yaml
    common:
    value: 44
  4. Interpolation de variables :

    # parent.yaml
    base_value: 42
    derived:
    value: ${base_value}
    # child.yaml
    defaults: parent.yaml
    base_value: 43 # Cela mettra à jour base_value et derived.value

Le système gère :

  • Chemins relatifs et absolus
  • Héritage multiple
  • Héritage imbriqué
  • Interpolation de variables

L’héritage est résolu en profondeur, les configurations ultérieures remplaçant les précédentes. Cela signifie que dans l’héritage multiple, la dernière configuration de la liste a la priorité.

Arguments : config_path : Chemin vers le fichier de configuration

Retourne : Dictionnaire de configuration fusionné

class nemo_rl.utils.config.OverridesError

Bases : Exception

Exception personnalisée pour les erreurs d’analyse des remplacements Hydra.

nemo_rl.utils.config.parse_hydra_overrides(
cfg: omegaconf.DictConfig, overrides: list[str]
) -> omegaconf.DictConfig

Analyser et appliquer les remplacements Hydra à une configuration OmegaConf.

Arguments : cfg : Configuration OmegaConf à laquelle appliquer les remplacements overrides : Liste de chaînes de remplacement Hydra

Retourne : Configuration mise à jour avec les remplacements appliqués

Lève : OverridesError : En cas d’erreur lors de l’analyse ou de l’application des remplacements