From 06d31c601b227a86bbf8717058ef03a84c82e934 Mon Sep 17 00:00:00 2001 From: MaxGhi8 Date: Tue, 5 Nov 2024 16:33:31 +0100 Subject: [PATCH 1/5] switch scheduler_step with scheduler_gamma --- _OtherModels/TrainFNO.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_OtherModels/TrainFNO.py b/_OtherModels/TrainFNO.py index d432bf0..6b4a160 100644 --- a/_OtherModels/TrainFNO.py +++ b/_OtherModels/TrainFNO.py @@ -15,8 +15,8 @@ training_properties = { "learning_rate": 0.001, "weight_decay": 1e-8, - "scheduler_step": 0.97, - "scheduler_gamma": 10, + "scheduler_step": 10, + "scheduler_gamma": 0.97, "epochs": 1000, "batch_size": 16, "exp": 1, From 643b3ce6585d0a77ce9a5eede92fe953b55bd572 Mon Sep 17 00:00:00 2001 From: MaxGhi8 Date: Tue, 5 Nov 2024 16:40:32 +0100 Subject: [PATCH 2/5] consistently chenge the relative L^1 norm --- CNO2d_original_version/TrainCNO.py | 4 ++-- CNO2d_vanilla_torch_version/TraincCNO.py | 2 +- _OtherModels/TrainDON.py | 2 +- _OtherModels/TrainFNO.py | 5 +++-- _OtherModels/TrainResNet.py | 2 +- _OtherModels/TrainUNet.py | 2 +- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/CNO2d_original_version/TrainCNO.py b/CNO2d_original_version/TrainCNO.py index dc60cdd..1b3b02f 100644 --- a/CNO2d_original_version/TrainCNO.py +++ b/CNO2d_original_version/TrainCNO.py @@ -183,7 +183,7 @@ output_pred_batch[input_batch==1] = 1 output_batch[input_batch==1] = 1 - loss_f = torch.mean(abs(output_pred_batch - output_batch)) / torch.mean(abs(output_batch)) * 100 + loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) * 100 test_relative_l2 += loss_f.item() test_relative_l2 /= len(val_loader) @@ -196,7 +196,7 @@ output_pred_batch[input_batch==1] = 1 output_batch[input_batch==1] = 1 - loss_f = torch.mean(abs(output_pred_batch - output_batch)) / torch.mean(abs(output_batch)) * 100 + loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) * 100 train_relative_l2 += loss_f.item() train_relative_l2 /= len(train_loader) diff --git a/CNO2d_vanilla_torch_version/TraincCNO.py b/CNO2d_vanilla_torch_version/TraincCNO.py index bda5e09..aee5cb2 100644 --- a/CNO2d_vanilla_torch_version/TraincCNO.py +++ b/CNO2d_vanilla_torch_version/TraincCNO.py @@ -85,7 +85,7 @@ def main(): test_relative_l2 = 0.0 for step, (input_batch, output_batch) in enumerate(testing_set): output_pred_batch = cno(input_batch) - loss_f = (torch.mean((abs(output_pred_batch - output_batch))) / torch.mean(abs(output_batch))) ** 0.5 * 100 + loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) ** 0.5 * 100 test_relative_l2 += loss_f.item() test_relative_l2 /= len(testing_set) diff --git a/_OtherModels/TrainDON.py b/_OtherModels/TrainDON.py index 58c7ad4..4cc6ce4 100644 --- a/_OtherModels/TrainDON.py +++ b/_OtherModels/TrainDON.py @@ -154,7 +154,7 @@ if which_example == "airfoil": output_pred_batch[input_batch == 1] = 1 output_batch[input_batch == 1] = 1 - loss_f = torch.mean(abs(output_pred_batch - output_batch)) / torch.mean(abs(output_batch)) * 100 + loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) * 100 test_relative_l2 += loss_f.item() test_relative_l2 /= len(test_loader) diff --git a/_OtherModels/TrainFNO.py b/_OtherModels/TrainFNO.py index 6b4a160..9f43540 100644 --- a/_OtherModels/TrainFNO.py +++ b/_OtherModels/TrainFNO.py @@ -155,7 +155,7 @@ output_pred_batch[input_batch==1] = 1 output_batch[input_batch==1] = 1 - loss_f = torch.mean(abs(output_pred_batch - output_batch)) / torch.mean(abs(output_batch)) * 100 + loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) * 100 test_relative_l2 += loss_f.item() test_relative_l2 /= len(test_loader) @@ -168,7 +168,8 @@ output_pred_batch[input_batch==1] = 1 output_batch[input_batch==1] = 1 - loss_f = torch.mean(abs(output_pred_batch - output_batch)) / torch.mean(abs(output_batch)) * 100 + loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) * 100 + loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) * 100 train_relative_l2 += loss_f.item() train_relative_l2 /= len(train_loader) diff --git a/_OtherModels/TrainResNet.py b/_OtherModels/TrainResNet.py index 7ceae43..88337f5 100644 --- a/_OtherModels/TrainResNet.py +++ b/_OtherModels/TrainResNet.py @@ -148,7 +148,7 @@ output_pred_batch[input_batch == 1] = 1 output_batch[input_batch == 1] = 1 - loss_f = torch.mean(abs(output_pred_batch - output_batch)) / torch.mean(abs(output_batch)) * 100 + loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) * 100 test_relative_l2 += loss_f.item() test_relative_l2 /= len(test_loader) diff --git a/_OtherModels/TrainUNet.py b/_OtherModels/TrainUNet.py index bb141d6..2edc091 100644 --- a/_OtherModels/TrainUNet.py +++ b/_OtherModels/TrainUNet.py @@ -147,7 +147,7 @@ output_pred_batch[input_batch == 1] = 1 output_batch[input_batch == 1] = 1 - loss_f = torch.mean(abs(output_pred_batch - output_batch)) / torch.mean(abs(output_batch)) * 100 + loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) * 100 test_relative_l2 += loss_f.item() test_relative_l2 /= len(test_loader) From 92636a3825e73a7b627771d13689172b8cd59bdf Mon Sep 17 00:00:00 2001 From: MaxGhi8 Date: Tue, 5 Nov 2024 16:43:13 +0100 Subject: [PATCH 3/5] consistently change the counts of the number of parameters to handle complex cases for FNOs --- CNO2d_original_version/CNOModule.py | 2 +- .../CNO_timeModule_CIN.py | 2 +- _OtherModels/BaselinesModules.py | 6 +++--- _OtherModels/CNNModules.py | 4 ++-- _OtherModels/DeepONetModules.py | 4 ++-- _OtherModels/FNOModules.py | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/CNO2d_original_version/CNOModule.py b/CNO2d_original_version/CNOModule.py index eb63bf6..71e12b5 100644 --- a/CNO2d_original_version/CNOModule.py +++ b/CNO2d_original_version/CNOModule.py @@ -548,7 +548,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') diff --git a/CNO2d_time_dependent_&_foundation_model/CNO_timeModule_CIN.py b/CNO2d_time_dependent_&_foundation_model/CNO_timeModule_CIN.py index 063b48b..9335bcf 100644 --- a/CNO2d_time_dependent_&_foundation_model/CNO_timeModule_CIN.py +++ b/CNO2d_time_dependent_&_foundation_model/CNO_timeModule_CIN.py @@ -1327,7 +1327,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') diff --git a/_OtherModels/BaselinesModules.py b/_OtherModels/BaselinesModules.py index bf928c9..072a80d 100644 --- a/_OtherModels/BaselinesModules.py +++ b/_OtherModels/BaselinesModules.py @@ -57,7 +57,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') @@ -229,7 +229,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') @@ -275,7 +275,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') diff --git a/_OtherModels/CNNModules.py b/_OtherModels/CNNModules.py index 509e9ce..6dfdac5 100644 --- a/_OtherModels/CNNModules.py +++ b/_OtherModels/CNNModules.py @@ -188,7 +188,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') @@ -298,7 +298,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') diff --git a/_OtherModels/DeepONetModules.py b/_OtherModels/DeepONetModules.py index b958c45..5814ed7 100644 --- a/_OtherModels/DeepONetModules.py +++ b/_OtherModels/DeepONetModules.py @@ -104,7 +104,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') @@ -145,7 +145,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') diff --git a/_OtherModels/FNOModules.py b/_OtherModels/FNOModules.py index 05365eb..f9d2d80 100644 --- a/_OtherModels/FNOModules.py +++ b/_OtherModels/FNOModules.py @@ -117,7 +117,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') @@ -264,7 +264,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel() + nparams += param.numel()*(param.is_complex + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') From 53a3833add81d739e5fbe89e28548cf3b8553139 Mon Sep 17 00:00:00 2001 From: MaxGhi8 Date: Tue, 5 Nov 2024 16:48:07 +0100 Subject: [PATCH 4/5] update unsaved files --- CNO1d_vanilla_torch_version/TraincCNO.py | 2 +- _OtherModels/TrainFNO.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/CNO1d_vanilla_torch_version/TraincCNO.py b/CNO1d_vanilla_torch_version/TraincCNO.py index 585db47..a571911 100644 --- a/CNO1d_vanilla_torch_version/TraincCNO.py +++ b/CNO1d_vanilla_torch_version/TraincCNO.py @@ -91,7 +91,7 @@ def main(): test_relative_l2 = 0.0 for step, (input_batch, output_batch) in enumerate(testing_set): output_pred_batch = cno(input_batch) - loss_f = (torch.mean((abs(output_pred_batch - output_batch))) / torch.mean(abs(output_batch))) ** 0.5 * 100 + loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) ** 0.5 * 100 test_relative_l2 += loss_f.item() test_relative_l2 /= len(testing_set) diff --git a/_OtherModels/TrainFNO.py b/_OtherModels/TrainFNO.py index 9f43540..22c1d20 100644 --- a/_OtherModels/TrainFNO.py +++ b/_OtherModels/TrainFNO.py @@ -168,7 +168,6 @@ output_pred_batch[input_batch==1] = 1 output_batch[input_batch==1] = 1 - loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) * 100 loss_f = torch.mean(torch.sum(abs(output_pred_batch - output_batch), dim=(1,2)) / torch.sum(abs(output_batch), dim=(1,2))) * 100 train_relative_l2 += loss_f.item() train_relative_l2 /= len(train_loader) From e731659604d65a57d1a3447d2b97e8e826935271 Mon Sep 17 00:00:00 2001 From: MaxGhi8 Date: Tue, 5 Nov 2024 17:03:31 +0100 Subject: [PATCH 5/5] forgiven parentheses --- CNO2d_original_version/CNOModule.py | 2 +- .../CNO_timeModule_CIN.py | 2 +- _OtherModels/BaselinesModules.py | 6 +++--- _OtherModels/CNNModules.py | 4 ++-- _OtherModels/DeepONetModules.py | 4 ++-- _OtherModels/FNOModules.py | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/CNO2d_original_version/CNOModule.py b/CNO2d_original_version/CNOModule.py index 71e12b5..87825da 100644 --- a/CNO2d_original_version/CNOModule.py +++ b/CNO2d_original_version/CNOModule.py @@ -548,7 +548,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') diff --git a/CNO2d_time_dependent_&_foundation_model/CNO_timeModule_CIN.py b/CNO2d_time_dependent_&_foundation_model/CNO_timeModule_CIN.py index 9335bcf..ab0a332 100644 --- a/CNO2d_time_dependent_&_foundation_model/CNO_timeModule_CIN.py +++ b/CNO2d_time_dependent_&_foundation_model/CNO_timeModule_CIN.py @@ -1327,7 +1327,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') diff --git a/_OtherModels/BaselinesModules.py b/_OtherModels/BaselinesModules.py index 072a80d..bb1d380 100644 --- a/_OtherModels/BaselinesModules.py +++ b/_OtherModels/BaselinesModules.py @@ -57,7 +57,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') @@ -229,7 +229,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') @@ -275,7 +275,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') diff --git a/_OtherModels/CNNModules.py b/_OtherModels/CNNModules.py index 6dfdac5..5517659 100644 --- a/_OtherModels/CNNModules.py +++ b/_OtherModels/CNNModules.py @@ -188,7 +188,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') @@ -298,7 +298,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') diff --git a/_OtherModels/DeepONetModules.py b/_OtherModels/DeepONetModules.py index 5814ed7..8d23c6d 100644 --- a/_OtherModels/DeepONetModules.py +++ b/_OtherModels/DeepONetModules.py @@ -104,7 +104,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') @@ -145,7 +145,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') diff --git a/_OtherModels/FNOModules.py b/_OtherModels/FNOModules.py index f9d2d80..5d4e807 100644 --- a/_OtherModels/FNOModules.py +++ b/_OtherModels/FNOModules.py @@ -117,7 +117,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})') @@ -264,7 +264,7 @@ def print_size(self): nbytes = 0 for param in self.parameters(): - nparams += param.numel()*(param.is_complex + 1) + nparams += param.numel()*(param.is_complex() + 1) nbytes += param.data.element_size() * param.numel() print(f'Total number of model parameters: {nparams} (~{format_tensor_size(nbytes)})')