Source code for citylearn.end_use_load_profiles.lstm_model.model_generation_wrapper

import random
from typing import Any, Mapping, Tuple
import numpy as np
import pandas as pd
import torch
from citylearn.end_use_load_profiles.lstm_model.model import LSTM
from citylearn.end_use_load_profiles.lstm_model.model_generation import run

[docs] def run_one_model(config: Mapping[str, Any], df: pd.DataFrame, seed: int) -> Mapping[str, Any]: model, observation_metadata, error_metrics = get_model(config, df, seed) return { 'model': model, 'attributes': { 'hidden_size': config['hidden_size'], 'num_layers': config['num_layer'], 'lookback': config['lb'], 'input_observation_names': observation_metadata['input_observation_names'], 'input_normalization_minimum': observation_metadata['input_normalization_minimum'], 'input_normalization_maximum': observation_metadata['input_normalization_maximum'] }, 'error_metrics': error_metrics }
[docs] def get_model(config: Mapping[str, Any], df: pd.DataFrame, seed) -> Tuple[LSTM, Mapping[str, Any], Mapping[str, float]]: set_random_seeds(seed) lstm, observation_metadata, error = run(config, df) return lstm, observation_metadata, error
[docs] def set_random_seeds(seed: int, benchmark: bool = None, deterministic: bool = None): torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed_all(seed) torch.backends.cudnn.benchmark = False if benchmark is None else benchmark torch.backends.cudnn.deterministic = True if deterministic is None else deterministic