File size: 1,154 Bytes
8cc5633
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# config.py
import os

# Base Directory
BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))

# Data paths
DATA_PATH = os.path.join(
    BASE_DIR, "..", "data", "processed", "energy_consumption_aggregated_cleaned.csv"
)

# Other  paths
CHECKPOINT_DIR = os.path.join(BASE_DIR, "model", "checkpoints")
RESULTS_DIR = os.path.join(BASE_DIR, "results")


# ========== Model Settings ==========
SEQ_LEN = 512  # Input sequence length (number of time steps the model sees)
FORECAST_HORIZON = 1  # Number of future steps the model should predict
HEAD_DROPOUT = 0.1  # Dropout in the head to prevent overfitting
WEIGHT_DECAY = 0.0  # L2 regularization (0 means off)

# ========== Training Settings ==========
MAX_EPOCHS = 9  # Optimal number of epochs based on performance curve
BATCH_SIZE = 32  # Batch size for training and evaluation
LEARNING_RATE = 1e-4  # Base learning rate
MAX_LR = 1e-4  # Max LR for OneCycleLR scheduler
GRAD_CLIP = 5.0  # Gradient clipping threshold

# ========== Freezing Strategy ==========
FREEZE_ENCODER = True
FREEZE_EMBEDDER = True
FREEZE_HEAD = False  # just unfreeze the last forecasting head for finetuning