File size: 1,565 Bytes
4ff4028
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import hydra
from omegaconf import DictConfig, OmegaConf
import rootutils
from dotenv import load_dotenv, find_dotenv

# Load environment variables
load_dotenv(find_dotenv(".env"))

# Setup root directory
root = rootutils.setup_root(__file__, indicator=".project-root", pythonpath=True)


# Define separate functions for each sub-configuration
def print_data(data_cfg: DictConfig):
    print("Data Configuration:")
    print(OmegaConf.to_yaml(data_cfg))


def print_model(model_cfg: DictConfig):
    print("Model Configuration:")
    print(OmegaConf.to_yaml(model_cfg))


def print_callbacks(callbacks_cfg: DictConfig):
    print("Callbacks Configuration:")
    print(OmegaConf.to_yaml(callbacks_cfg))


def print_logger(logger_cfg: DictConfig):
    print("Logger Configuration:")
    print(OmegaConf.to_yaml(logger_cfg))


def print_trainer(trainer_cfg: DictConfig):
    print("Trainer Configuration:")
    print(OmegaConf.to_yaml(trainer_cfg))


def print_paths(paths_cfg: DictConfig):
    print("Paths Configuration:")
    print(OmegaConf.to_yaml(paths_cfg))


@hydra.main(config_path="../configs", config_name="train", version_base="1.1")
def hydra_test(cfg: DictConfig):
    # Print the full configuration
    print("Full Configuration:")
    print(OmegaConf.to_yaml(cfg))

    # Call each function with the corresponding sub-configuration
    print_data(cfg.data)
    print_model(cfg.model)
    print_callbacks(cfg.callbacks)
    print_logger(cfg.logger)
    print_trainer(cfg.trainer)
    print_paths(cfg.paths)


if __name__ == "__main__":
    hydra_test()