Updated thesis
This commit is contained in:
@@ -169,11 +169,16 @@ class NrvDataset(Dataset):
|
||||
all_features = torch.cat(all_features_list, dim=0)
|
||||
|
||||
else:
|
||||
all_features_list = [nrv_features.unsqueeze(1)]
|
||||
all_features_list = [nrv_features + self.]
|
||||
|
||||
|
||||
if self.forecast_features.numel() > 0:
|
||||
history_forecast_features = self.forecast_features[
|
||||
actual_idx + 1 : actual_idx + self.sequence_length + 1, :
|
||||
actual_idx
|
||||
+ 1 : actual_idx
|
||||
+ self.sequence_length
|
||||
+ self.predict_sequence_length,
|
||||
:,
|
||||
]
|
||||
all_features_list.append(history_forecast_features)
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@ class GRUDiffusionModel(DiffusionModel):
|
||||
self.gru = nn.GRU(
|
||||
input_size=input_size + time_dim + other_inputs_dim,
|
||||
hidden_size=gru_hidden_size,
|
||||
num_layers=3,
|
||||
num_layers=1,
|
||||
batch_first=True,
|
||||
)
|
||||
|
||||
|
||||
@@ -590,43 +590,43 @@ class DiffusionTrainer:
|
||||
title="CRPS", series="test", value=mean_crps, iteration=epoch
|
||||
)
|
||||
|
||||
if self.policy_evaluator:
|
||||
_, test_loader = self.data_processor.get_dataloaders(
|
||||
predict_sequence_length=self.ts_length, full_day_skip=True
|
||||
)
|
||||
# if self.policy_evaluator:
|
||||
# _, test_loader = self.data_processor.get_dataloaders(
|
||||
# predict_sequence_length=self.ts_length, full_day_skip=True
|
||||
# )
|
||||
|
||||
optimal_penalty, profit, charge_cycles = (
|
||||
self.policy_evaluator.optimize_penalty_for_target_charge_cycles(
|
||||
idx_samples=generated_samples,
|
||||
test_loader=test_loader,
|
||||
initial_penalty=self.prev_optimal_penalty,
|
||||
target_charge_cycles=283,
|
||||
initial_learning_rate=1,
|
||||
max_iterations=50,
|
||||
tolerance=1,
|
||||
iteration=epoch,
|
||||
)
|
||||
)
|
||||
# optimal_penalty, profit, charge_cycles = (
|
||||
# self.policy_evaluator.optimize_penalty_for_target_charge_cycles(
|
||||
# idx_samples=generated_samples,
|
||||
# test_loader=test_loader,
|
||||
# initial_penalty=self.prev_optimal_penalty,
|
||||
# target_charge_cycles=283,
|
||||
# initial_learning_rate=1,
|
||||
# max_iterations=50,
|
||||
# tolerance=1,
|
||||
# iteration=epoch,
|
||||
# )
|
||||
# )
|
||||
|
||||
self.prev_optimal_penalty = optimal_penalty
|
||||
# self.prev_optimal_penalty = optimal_penalty
|
||||
|
||||
task.get_logger().report_scalar(
|
||||
title="Optimal Penalty",
|
||||
series="test",
|
||||
value=optimal_penalty,
|
||||
iteration=epoch,
|
||||
)
|
||||
# task.get_logger().report_scalar(
|
||||
# title="Optimal Penalty",
|
||||
# series="test",
|
||||
# value=optimal_penalty,
|
||||
# iteration=epoch,
|
||||
# )
|
||||
|
||||
task.get_logger().report_scalar(
|
||||
title="Optimal Profit", series="test", value=profit, iteration=epoch
|
||||
)
|
||||
# task.get_logger().report_scalar(
|
||||
# title="Optimal Profit", series="test", value=profit, iteration=epoch
|
||||
# )
|
||||
|
||||
task.get_logger().report_scalar(
|
||||
title="Optimal Charge Cycles",
|
||||
series="test",
|
||||
value=charge_cycles,
|
||||
iteration=epoch,
|
||||
)
|
||||
# task.get_logger().report_scalar(
|
||||
# title="Optimal Charge Cycles",
|
||||
# series="test",
|
||||
# value=charge_cycles,
|
||||
# iteration=epoch,
|
||||
# )
|
||||
|
||||
return mean_crps, generated_samples
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ from src.utils.clearml import ClearMLHelper
|
||||
|
||||
clearml_helper = ClearMLHelper(project_name="Thesis/NrvForecast")
|
||||
task = clearml_helper.get_task(
|
||||
task_name="Diffusion Training (GRU - 2048): hidden_sizes=[512, 512] (300 steps), lr=0.0001, time_dim=8 + NRV + L + W + PV + NP",
|
||||
task_name="Diffusion Training: hidden_sizes=[1024, 1024] (300 steps), lr=0.0001, time_dim=8 + NRV + L + W + PV + NP",
|
||||
)
|
||||
task.execute_remotely(queue_name="default", exit_process=True)
|
||||
|
||||
@@ -32,7 +32,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(64)
|
||||
data_processor.set_full_day_skip(True)
|
||||
|
||||
@@ -42,33 +42,35 @@ print("Input dim: ", inputDim)
|
||||
model_parameters = {
|
||||
"epochs": 15000,
|
||||
"learning_rate": 0.0001,
|
||||
"hidden_sizes": [512, 512],
|
||||
"hidden_sizes": [1024, 1024],
|
||||
"time_dim": 8,
|
||||
}
|
||||
|
||||
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"],
|
||||
# )
|
||||
|
||||
model = GRUDiffusionModel(
|
||||
model = SimpleDiffusionModel(
|
||||
96,
|
||||
model_parameters["hidden_sizes"],
|
||||
other_inputs_dim=inputDim[2],
|
||||
other_inputs_dim=inputDim[1],
|
||||
time_dim=model_parameters["time_dim"],
|
||||
gru_hidden_size=2048,
|
||||
)
|
||||
|
||||
# model = GRUDiffusionModel(
|
||||
# 96,
|
||||
# model_parameters["hidden_sizes"],
|
||||
# other_inputs_dim=inputDim[2],
|
||||
# time_dim=model_parameters["time_dim"],
|
||||
# gru_hidden_size=1024,
|
||||
# )
|
||||
|
||||
### Policy Evaluator ###
|
||||
battery = Battery(2, 1)
|
||||
baseline_policy = BaselinePolicy(battery, data_path="")
|
||||
policy_evaluator = PolicyEvaluator(baseline_policy, task)
|
||||
|
||||
#### Trainer ####
|
||||
trainer = DiffusionTrainer(model, data_processor, "cuda", policy_evaluator=None)
|
||||
trainer = DiffusionTrainer(
|
||||
model, data_processor, "cuda", policy_evaluator=policy_evaluator
|
||||
)
|
||||
trainer.train(model_parameters["epochs"], model_parameters["learning_rate"], task)
|
||||
|
||||
Reference in New Issue
Block a user