deeplearning/modulus/modulus-sym/_modules/modulus/sym/hydra/hydra.html

Source code for modulus.sym.hydra.hydra

# Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""
Hydra related configs
"""
import pathlib
from dataclasses import dataclass, field
from hydra.core.config_store import ConfigStore
from hydra.conf import RunDir
from omegaconf import OmegaConf, MISSING, SI, II
from typing import Any, Union, List, Dict


[docs]@dataclass class SimpleFormat: format: str = "[%(asctime)s] - %(message)s" datefmt: str = "%H:%M:%S"
[docs]@dataclass class DebugFormat: format: str = "[%(levelname)s][%(asctime)s][%(module)s] - %(message)s" datefmt: str = "%Y-%m-%d %H:%M:%S"

info_console_handler = { "class": "logging.StreamHandler", "formatter": "simple", "stream": "ext://sys.stdout", }

[docs]@dataclass class DefaultLogging: version: int = 1 formatters: Any = field(default_factory=lambda: {"simple": SimpleFormat}) handlers: Any = field(default_factory=lambda: {"console": info_console_handler}) root: Any = field(default_factory=lambda: {"handlers": ["console"]}) disable_existing_loggers: bool = False level: int = ( 20 # CRITICAL: 50, ERROR: 40, WARNING: 30, INFO: 20, DEBUG: 10, NOTSET: 0 )

debug_console_handler = { "class": "logging.StreamHandler", "formatter": "debug", "stream": "ext://sys.stdout", }

[docs]@dataclass class DebugLogging: version: int = 1 formatters: Any = field(default_factory=lambda: {"debug": DebugFormat}) handlers: Any = field(default_factory=lambda: {"console": debug_console_handler}) root: Any = field(default_factory=lambda: {"handlers": ["console"]}) disable_existing_loggers: bool = False level: int = ( 0 # CRITICAL: 50, ERROR: 40, WARNING: 30, INFO: 20, DEBUG: 10, NOTSET: 0 )

# Hydra defaults group parameters for modulus file_path = pathlib.Path(__file__).parent.resolve() modulus_help = OmegaConf.load(file_path / "help.yaml") # Standard Hydra parameters default_hydra = { "run": {"dir": SI("outputs/${hydra:job.override_dirname}/${hydra:job.name}")}, "sweep": {"dir": "multirun", "subdir": SI("${hydra.job.override_dirname}")}, "verbose": SI("${debug}"), }

[docs]def register_hydra_configs() -> None: cs = ConfigStore.instance() cs.store( group="hydra/job_logging", name="info_logging", node=DefaultLogging, ) cs.store( group="hydra/job_logging", name="debug_logging", node=DebugLogging, ) cs.store( group="hydra/help", name="modulus_help", node=modulus_help, )
© Copyright 2023, NVIDIA Modulus Team. Last updated on Jan 25, 2024.