Updated thesis

This commit is contained in:
Victor Mylle
2024-05-20 09:35:07 +00:00
parent 74729f6b85
commit 8df0c73bb4
10 changed files with 57 additions and 47 deletions

View File

@@ -637,6 +637,15 @@ class NonAutoRegressiveQuantileRegression(Trainer):
task.get_logger().report_single_value(
name=metric_name, value=metric_value
)
if train == False:
crps_from_samples_metric, self.test_set_samples = (
self.calculate_crps_from_samples(None, dataloader, None)
)
task.get_logger().report_single_value(
name="test_CRPS_from_samples_transformed",
value=np.mean(crps_from_samples_metric),
)
def debug_plots(self, task, train: bool, data_loader, sample_indices, epoch):
for actual_idx, idx in sample_indices.items():
@@ -846,6 +855,7 @@ class NonAutoRegressiveQuantileRegression(Trainer):
targets = targets.squeeze(-1)
targets = targets[0].unsqueeze(0)
targets = self.data_processor.inverse_transform(targets)
targets = targets.to(self.device)
samples = samples.to(self.device)
@@ -871,8 +881,8 @@ class NonAutoRegressiveQuantileRegression(Trainer):
initial_penalty=900,
target_charge_cycles=58 * 400 / 356,
initial_learning_rate=5,
max_iterations=100,
tolerance=1,
max_iterations=30,
tolerance=2,
iteration=epoch,
)
)
@@ -907,6 +917,8 @@ class NonAutoRegressiveQuantileRegression(Trainer):
generated_samples,
)
return np.mean(crps_from_samples_metric), generated_samples
def plot_quantile_percentages(
self,
task,

View File

@@ -44,7 +44,7 @@ data_config.NOMINAL_NET_POSITION = True
data_config = task.connect(data_config, name="data_features")
data_processor = DataProcessor(data_config, path="", lstm=True)
data_processor = DataProcessor(data_config, path="", lstm=False)
data_processor.set_batch_size(512)
data_processor.set_full_day_skip(False)

View File

@@ -2,10 +2,10 @@ from src.utils.clearml import ClearMLHelper
#### ClearML ####
clearml_helper = ClearMLHelper(
project_name="Thesis/NAQR: Non Linear (4 - 256) + Load + PV + Wind + NP"
project_name="Thesis/NrvForecast"
)
task = clearml_helper.get_task(
task_name="NAQR: Non Linear (4 - 256) + Load + PV + Wind + NP"
task_name="NAQR: Non Linear (2 - 512)"
)
task.execute_remotely(queue_name="default", exit_process=True)
@@ -30,17 +30,17 @@ from src.models.time_embedding_layer import TimeEmbedding
#### Data Processor ####
data_config = DataConfig()
data_config.NRV_HISTORY = True
data_config.LOAD_HISTORY = True
data_config.LOAD_FORECAST = True
data_config.NRV_HISTORY = False
data_config.LOAD_HISTORY = False
data_config.LOAD_FORECAST = False
data_config.WIND_FORECAST = True
data_config.WIND_HISTORY = True
data_config.WIND_FORECAST = False
data_config.WIND_HISTORY = False
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")
@@ -53,7 +53,7 @@ data_processor.set_full_day_skip(True)
#### Hyperparameters ####
data_processor.set_output_size(96)
inputDim = data_processor.get_input_size()
epochs = 300
epochs = 5
# add parameters to clearml
quantiles = task.get_parameter("general/quantiles", cast=True)
@@ -69,7 +69,7 @@ else:
model_parameters = {
"learning_rate": 0.0001,
"hidden_size": 512,
"num_layers": 8,
"num_layers": 2,
"dropout": 0.2,
}
@@ -111,15 +111,15 @@ trainer = NonAutoRegressiveQuantileRegression(
data_processor,
quantiles,
"cuda",
policy_evaluator=None,
policy_evaluator=policy_evaluator,
debug=False,
)
trainer.add_metrics_to_track(
[PinballLoss(quantiles), MSELoss(), L1Loss(), CRPSLoss(quantiles)]
)
trainer.early_stopping(patience=5)
trainer.plot_every(20)
trainer.early_stopping(patience=8)
trainer.plot_every(4)
trainer.train(task=task, epochs=epochs, remotely=True)
### Policy Evaluation ###
@@ -138,7 +138,7 @@ optimal_penalty, profit, charge_cycles = (
test_loader=test_loader,
initial_penalty=1000,
target_charge_cycles=283,
learning_rate=15,
initial_learning_rate=15,
max_iterations=150,
tolerance=1,
)