import os import random from datetime import datetime import numpy as np import torch device = torch.device("cuda" if torch.cuda.is_available() else "cpu") def seed_everything(seed: int): random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = False os.environ["PYTHONHASHSEED"] = str(seed) def generate_descriptive_model_name(config): return ( f"{config['model_name']}_" f"BATCH{config['batch_size']}_" f"ITER{config['num_training_iterations']}_" f"ACCUM_{config['gradient_accumulation_enabled']}_" f"ACC_STEPS{config['accumulation_steps']}_" f"Emb{config['TimeSeriesModel']['embed_size']}_" f"L{config['TimeSeriesModel']['num_encoder_layers']}_" f"H{config['TimeSeriesModel']['encoder_config']['num_householder']}_" f"LR_SCHEDULER_{config['lr_scheduler']}_" f"PEAK_LR{config['peak_lr']}_" f"{datetime.now().strftime('_%Y%m%d_%H%M%S')}" )