Skip to content
Snippets Groups Projects
Commit 9f6d54f3 authored by Yandi's avatar Yandi
Browse files

[Conditionning] Min max scaling + [Visualization] Changing the run names

parent 575b296d
No related branches found
No related tags found
1 merge request!1Master into main
...@@ -21,6 +21,14 @@ ApproximativeMean: "torch.tensor([ 4.2457e+01, 7.4651e+00, 1.6738e+02, 1.3576 ...@@ -21,6 +21,14 @@ ApproximativeMean: "torch.tensor([ 4.2457e+01, 7.4651e+00, 1.6738e+02, 1.3576
ApproximativeSTD: "torch.tensor([5.8939e-01, 8.1625e-01, 1.4535e+02, 5.4952e+07, 1.7543e-02, 1.3846e+02, ApproximativeSTD: "torch.tensor([5.8939e-01, 8.1625e-01, 1.4535e+02, 5.4952e+07, 1.7543e-02, 1.3846e+02,
2.1302e-01, 1.9558e+00, 4.1455e+00, 1.2408e+01, 2.2938e-02, 9.9070e-02, 2.1302e-01, 1.9558e+00, 4.1455e+00, 1.2408e+01, 2.2938e-02, 9.9070e-02,
1.9490e-01, 9.2847e-03, 2.2575e+00, 8.5310e-02, 7.8280e-02, 8.6237e-02])" 1.9490e-01, 9.2847e-03, 2.2575e+00, 8.5310e-02, 7.8280e-02, 8.6237e-02])"
ApproximativeMaxi: "torch.tensor([ 4.3479e+01, 9.0000e+00, 4.9267e+02, 1.4528e+09, 2.4088e+00,
2.7824e+03, 1.5576e+00, 6.2457e+00, 2.5120e+02, 2.7188e+02,
8.1683e+00, 3.2447e-01, 3.9041e+01, 2.7162e+00, 2.9419e+01,
8.6284e-01, 7.6471e-01, -7.7745e-02])"
ApproximativeMini: "torch.tensor([ 4.1479e+01, 6.0000e+00, 1.0182e+00, 1.2623e+09, 2.2433e+00,
1.0910e+01, 1.0000e-11, 1.0000e-11, -1.1467e+01, 1.9718e+02,
7.9218e+00, 1.0000e-11, 3.7171e+01, 2.5584e+00, 1.2075e+01,
-1.2436e+00, -9.9256e-01, -8.8131e-01])"
#Optimizer selection #Optimizer selection
Optimizer: Adam # in {Adam} Optimizer: Adam # in {Adam}
......
...@@ -201,6 +201,10 @@ def get_stats_train_dataset( ...@@ -201,6 +201,10 @@ def get_stats_train_dataset(
mean = 0. mean = 0.
std = 0. std = 0.
nb_samples = 0. nb_samples = 0.
it = iter(train_loader)
X, Y = next(it)
maxi = X.max(dim=0).values.max(dim=0).values
mini = X.min(dim=0).values.min(dim=0).values
print("Computing the statistics of the train dataset") print("Computing the statistics of the train dataset")
...@@ -209,6 +213,9 @@ def get_stats_train_dataset( ...@@ -209,6 +213,9 @@ def get_stats_train_dataset(
# Update the total sum # Update the total sum
mean += data[0].mean(dim=0).mean(dim=0) * data[0].size(0) mean += data[0].mean(dim=0).mean(dim=0) * data[0].size(0)
std += data[0].std(dim=0).mean(dim=0) * data[0].size(0) std += data[0].std(dim=0).mean(dim=0) * data[0].size(0)
#Update mini and maxi
maxi = torch.stack((data[0].max(dim=0).values.max(dim=0).values, maxi)).max(dim=0).values
mini = torch.stack((data[0].min(dim=0).values.min(dim=0).values, mini)).min(dim=0).values
# Update the number of samples # Update the number of samples
nb_samples += data[0].size(0) nb_samples += data[0].size(0)
...@@ -216,7 +223,7 @@ def get_stats_train_dataset( ...@@ -216,7 +223,7 @@ def get_stats_train_dataset(
mean /= nb_samples mean /= nb_samples
std /= nb_samples std /= nb_samples
return mean, std return mean, std, maxi, mini
def get_test_dataloader( def get_test_dataloader(
filepath, filepath,
...@@ -259,6 +266,9 @@ def transform_remove_space_time(): ...@@ -259,6 +266,9 @@ def transform_remove_space_time():
def transform_normalize_with_train_statistics(MEAN, STD): def transform_normalize_with_train_statistics(MEAN, STD):
return lambda attributes : torch.div(torch.sub(attributes, MEAN), STD) return lambda attributes : torch.div(torch.sub(attributes, MEAN), STD)
def transform_min_max_scaling(MIN, MAX):
return lambda attributes : torch.div(torch.sub(attributes, MIN), torch.sub(MAX,MIN))
def composite_transform(f,g): def composite_transform(f,g):
return lambda attributes : f(g(attributes)) return lambda attributes : f(g(attributes))
...@@ -292,8 +302,8 @@ if __name__ == "__main__": ...@@ -292,8 +302,8 @@ if __name__ == "__main__":
train_transform =composite_transform(transform_remove_space_time(), transform_normalize_with_train_statistics(MEAN, STD)) train_transform =composite_transform(transform_remove_space_time(), transform_normalize_with_train_statistics(MEAN, STD))
) )
"""
#mean, std = get_stats_train_dataset( mean, std, maxi, mini = get_stats_train_dataset(
filepath = trainpath, filepath = trainpath,
num_days = num_days, num_days = num_days,
batch_size = batch_size, batch_size = batch_size,
...@@ -303,9 +313,12 @@ if __name__ == "__main__": ...@@ -303,9 +313,12 @@ if __name__ == "__main__":
overwrite_index=True, overwrite_index=True,
max_num_samples=max_num_samples, max_num_samples=max_num_samples,
) )
"""
print("Mini = ")
print(mini)
print("Maxi =")
print(maxi)
it = iter(train_loader) it = iter(train_loader)
X, Y = next(it) X, Y = next(it)
......
File deleted
...@@ -49,8 +49,10 @@ if __name__ == "__main__": ...@@ -49,8 +49,10 @@ if __name__ == "__main__":
if approx_stats: if approx_stats:
MEAN = eval(cfg["ApproximativeMean"]) MEAN = eval(cfg["ApproximativeMean"])
STD = eval(cfg["ApproximativeSTD"]) STD = eval(cfg["ApproximativeSTD"])
MAX = eval(cfg["ApproximativeMaxi"])
MIN = eval(cfg["ApproximativeMini"])
else : else :
MEAN, STD = get_stats_train_dataset(trainpath, MEAN, STD, MAX, MIN = get_stats_train_dataset(trainpath,
num_days, num_days,
batch_size, batch_size,
num_workers, num_workers,
...@@ -73,8 +75,8 @@ if __name__ == "__main__": ...@@ -73,8 +75,8 @@ if __name__ == "__main__":
max_num_samples=max_num_samples, max_num_samples=max_num_samples,
#train_transform = dataloader.transform_remove_space_time(), #train_transform = dataloader.transform_remove_space_time(),
#valid_transform = dataloader.transform_remove_space_time() #valid_transform = dataloader.transform_remove_space_time()
train_transform=dataloader.composite_transform(dataloader.transform_remove_space_time(), dataloader.transform_normalize_with_train_statistics(MEAN, STD)), train_transform=dataloader.composite_transform(dataloader.transform_remove_space_time(), dataloader.transform_min_max_scaling(MIN, MAX)),
valid_transform=dataloader.composite_transform(dataloader.transform_remove_space_time(), dataloader.transform_normalize_with_train_statistics(MEAN, STD)) valid_transform=dataloader.composite_transform(dataloader.transform_remove_space_time(), dataloader.transform_min_max_scaling(MIN, MAX))
) )
if use_cuda : if use_cuda :
...@@ -92,8 +94,8 @@ if __name__ == "__main__": ...@@ -92,8 +94,8 @@ if __name__ == "__main__":
optimizer = optimizer(cfg, network) optimizer = optimizer(cfg, network)
logdir = utils.create_unique_logpath(cfg["LogDir"], cfg["Model"]["Name"]) logdir, raw_run_name = utils.create_unique_logpath(cfg["LogDir"], cfg["Model"]["Name"])
wandb.run.name = utils.generate_unique_logpath("", cfg["Model"]["Name"]) wandb.run.name = raw_run_name
network_checkpoint = model.ModelCheckpoint(logdir + "/best_model.pt", network) network_checkpoint = model.ModelCheckpoint(logdir + "/best_model.pt", network)
...@@ -114,7 +116,7 @@ if __name__ == "__main__": ...@@ -114,7 +116,7 @@ if __name__ == "__main__":
wandb.log({"val_loss": val_loss}) wandb.log({"val_loss": val_loss})
create_submission.create_submission(network, dataloader.composite_transform(dataloader.transform_remove_space_time(), dataloader.transform_normalize_with_train_statistics(MEAN, STD)), device) create_submission.create_submission(network, dataloader.composite_transform(dataloader.transform_remove_space_time(), dataloader.transform_min_max_scaling(MIN, MAX)), device)
""" """
logdir = generate_unique_logpath(top_logdir, "linear") logdir = generate_unique_logpath(top_logdir, "linear")
print("Logging to {}".format(logdir)) print("Logging to {}".format(logdir))
......
...@@ -14,4 +14,4 @@ def create_unique_logpath(top_logdir, raw_run_name): ...@@ -14,4 +14,4 @@ def create_unique_logpath(top_logdir, raw_run_name):
os.mkdir(top_logdir) os.mkdir(top_logdir)
logdir = generate_unique_logpath(top_logdir, raw_run_name) logdir = generate_unique_logpath(top_logdir, raw_run_name)
os.mkdir(logdir) os.mkdir(logdir)
return logdir return logdir, raw_run_name
\ No newline at end of file \ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment