Non-linear non autoregressive experiments

This commit is contained in:
2024-05-04 16:51:26 +02:00
parent e0c42797e0
commit 75b35bb2c9
14 changed files with 527 additions and 335 deletions

View File

@@ -1,10 +1,8 @@
from src.utils.clearml import ClearMLHelper
#### ClearML ####
clearml_helper = ClearMLHelper(project_name="Thesis/NAQR: Linear")
task = clearml_helper.get_task(
task_name="NAQR: Linear + Load + PV + Wind + Net Position"
)
clearml_helper = ClearMLHelper(project_name="Thesis/NAQR: Non-Linear")
task = clearml_helper.get_task(task_name="NAQR: Non-Linear (2 - 256)")
task.execute_remotely(queue_name="default", exit_process=True)
from src.policies.PolicyEvaluator import PolicyEvaluator
@@ -29,16 +27,16 @@ from src.models.time_embedding_layer import TimeEmbedding
data_config = DataConfig()
data_config.NRV_HISTORY = True
data_config.LOAD_HISTORY = True
data_config.LOAD_FORECAST = True
data_config.LOAD_HISTORY = False
data_config.LOAD_FORECAST = False
data_config.WIND_FORECAST = True
data_config.WIND_FORECAST = False
data_config.WIND_HISTORY = True
data_config.PV_FORECAST = True
data_config.PV_HISTORY = True
data_config.PV_FORECAST = False
data_config.PV_HISTORY = False
data_config.NOMINAL_NET_POSITION = True
data_config.NOMINAL_NET_POSITION = False
data_config = task.connect(data_config, name="data_features")
@@ -51,7 +49,7 @@ data_processor.set_full_day_skip(True)
#### Hyperparameters ####
data_processor.set_output_size(96)
inputDim = data_processor.get_input_size()
epochs = 2
epochs = 300
# add parameters to clearml
quantiles = task.get_parameter("general/quantiles", cast=True)
@@ -66,33 +64,25 @@ else:
model_parameters = {
"learning_rate": 0.0001,
"hidden_size": 512,
"num_layers": 5,
"hidden_size": 256,
"num_layers": 2,
"dropout": 0.2,
"time_feature_embedding": 8,
}
model_parameters = task.connect(model_parameters, name="model_parameters")
# lstm_model = GRUModel(
# time_embedding.output_dim(inputDim),
# len(quantiles),
# hidden_size=model_parameters["hidden_size"],
# num_layers=model_parameters["num_layers"],
# dropout=model_parameters["dropout"],
# )
# linear_model = LinearRegression(inputDim, len(quantiles) * 96)
# non_linear_model = NonLinearRegression(
# time_embedding.output_dim(inputDim),
# len(quantiles) * 96,
# hiddenSize=model_parameters["hidden_size"],
# numLayers=model_parameters["num_layers"],
# dropout=model_parameters["dropout"],
# )
non_linear_model = NonLinearRegression(
inputDim,
len(quantiles) * 96,
hiddenSize=model_parameters["hidden_size"],
numLayers=model_parameters["num_layers"],
dropout=model_parameters["dropout"],
)
linear_model = LinearRegression(inputDim, len(quantiles) * 96)
model = linear_model
model = non_linear_model
model.output_size = 96
optimizer = torch.optim.Adam(model.parameters(), lr=model_parameters["learning_rate"])
@@ -117,7 +107,7 @@ trainer.add_metrics_to_track(
[PinballLoss(quantiles), MSELoss(), L1Loss(), CRPSLoss(quantiles)]
)
trainer.early_stopping(patience=5)
trainer.plot_every(1)
trainer.plot_every(20)
trainer.train(task=task, epochs=epochs, remotely=True)
### Policy Evaluation ###