62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
from clearml import Task
|
|
from src.data import DataProcessor, DataConfig
|
|
from src.trainers.trainer import Trainer
|
|
from src.utils.clearml import ClearMLHelper
|
|
from src.models import *
|
|
from src.losses import *
|
|
import torch
|
|
import numpy as np
|
|
from torch.nn import MSELoss, L1Loss
|
|
from datetime import datetime
|
|
import torch.nn as nn
|
|
from src.models.time_embedding_layer import TimeEmbedding
|
|
from src.models.diffusion_model import SimpleDiffusionModel
|
|
from src.trainers.diffusion_trainer import DiffusionTrainer
|
|
|
|
|
|
clearml_helper = ClearMLHelper(project_name="Thesis/NrvForecast")
|
|
task = clearml_helper.get_task(task_name="Diffusion Training")
|
|
|
|
# execute remotely
|
|
task.execute_remotely(queue_name="default", exit_process=True)
|
|
print("Running remotely")
|
|
|
|
#### Data Processor ####
|
|
data_config = DataConfig()
|
|
data_config.NRV_HISTORY = True
|
|
data_config.LOAD_HISTORY = True
|
|
data_config.LOAD_FORECAST = True
|
|
|
|
data_config.WIND_FORECAST = True
|
|
data_config.WIND_HISTORY = True
|
|
|
|
data_config.QUARTER = False
|
|
data_config.DAY_OF_WEEK = False
|
|
|
|
data_config.NOMINAL_NET_POSITION = True
|
|
|
|
data_config = task.connect(data_config, name="data_features")
|
|
|
|
data_processor = DataProcessor(data_config, path="", lstm=False)
|
|
data_processor.set_batch_size(8192)
|
|
data_processor.set_full_day_skip(True)
|
|
|
|
inputDim = data_processor.get_input_size()
|
|
|
|
model_parameters = {
|
|
"epochs": 5000,
|
|
"learning_rate": 0.0001,
|
|
"hidden_sizes": [512, 512, 512],
|
|
"time_dim": 64,
|
|
}
|
|
|
|
model_parameters = task.connect(model_parameters, name="model_parameters")
|
|
|
|
#### Model ####
|
|
model = SimpleDiffusionModel(96, model_parameters["hidden_sizes"], other_inputs_dim=inputDim[1], time_dim=model_parameters["time_dim"])
|
|
|
|
print("Starting training ...")
|
|
|
|
#### Trainer ####
|
|
trainer = DiffusionTrainer(model, data_processor, "cuda")
|
|
trainer.train(model_parameters["epochs"], model_parameters["learning_rate"], task) |