2626
2727def load_pretrained_PINN (ann_filename ):
2828 try :
29- with open ( ann_filename , 'rb' ) as data_input_file :
30- data_nn = pickle .load (data_input_file )
29+ import torch
30+ data_nn = torch .load (ann_filename , map_location = torch . device ( 'cpu' ) )
3131 except FileNotFoundError :
3232 print ('No model located, proceeding with ann approx. retraining.' )
3333 data_nn = None
@@ -47,13 +47,19 @@ def compare_equations(correct_symbolic: str, eq_incorrect_symbolic: str,
4747 for var in all_vars :
4848 correct_eq .vals [var ].main_var_to_explain = var
4949 correct_eq .vals [var ].metaparameters = metaparams
50+ correct_eq .vals [var ].weights_internal = np .ones (len (correct_eq .vals [var ].structure ) - 1 )
51+ correct_eq .vals [var ].weights_internal_evald = True
52+ correct_eq .vals [var ].weights_final_evald = True
5053 print (correct_eq .text_form )
5154
5255 incorrect_eq = translate_equation (eq_incorrect_symbolic , search_obj .pool ,
5356 all_vars = all_vars ) # , all_vars = ['u', 'v'])
5457 for var in all_vars :
5558 incorrect_eq .vals [var ].main_var_to_explain = var
5659 incorrect_eq .vals [var ].metaparameters = metaparams
60+ incorrect_eq .vals [var ].weights_internal = np .ones (len (correct_eq .vals [var ].structure ) - 1 )
61+ incorrect_eq .vals [var ].weights_internal_evald = True
62+ incorrect_eq .vals [var ].weights_final_evald = True
5763 print (incorrect_eq .text_form )
5864
5965 fit_operator .apply (correct_eq , {})
@@ -143,7 +149,7 @@ def KdV_test(operator: CompoundOperator, foldername: str, noise_level: int = 0):
143149 grid , data = kdv_data (os .path .join (foldername , 'data.csv' ))
144150 # grid, data = kdv_data(os.path.join(foldername, 'Kdv.mat'))
145151 noised_data = noise_data (data , noise_level )
146- data_nn = load_pretrained_PINN (os .path .join (foldername , 'kdv_0_ann.pickle' ))
152+ data_nn = None # load_pretrained_PINN(os.path.join(foldername, 'kdv_0_ann.pickle'))
147153
148154 print ('Shapes:' , data .shape , grid [0 ].shape )
149155 dimensionality = 1
@@ -153,7 +159,7 @@ def KdV_test(operator: CompoundOperator, foldername: str, noise_level: int = 0):
153159
154160 epde_search_obj = EpdeSearch (use_solver = False , use_pic = True , boundary = 10 ,
155161 coordinate_tensors = (grid [0 ], grid [1 ]), verbose_params = {'show_iter_idx' : True },
156- device = 'cuda' )
162+ device = 'cuda' if torch . cuda . is_available () else 'cpu' )
157163
158164 custom_trigonometric_eval_fun = {
159165 'cos(t)sin(x)' : lambda * grids , ** kwargs : (np .cos (grids [0 ]) * np .sin (grids [1 ])) ** kwargs ['power' ]}
@@ -200,7 +206,7 @@ def KdV_h_test(operator: CompoundOperator, foldername: str, noise_level: int = 0
200206
201207 epde_search_obj = EpdeSearch (use_solver = False , use_pic = True , boundary = 20 ,
202208 coordinate_tensors = (grid [0 ], grid [1 ]), verbose_params = {'show_iter_idx' : True },
203- device = 'cuda' )
209+ device = 'cuda' if torch . cuda . is_available () else 'cpu' )
204210
205211 epde_search_obj .set_preprocessor (default_preprocessor_type = 'FD' ,
206212 preprocessor_kwargs = {}) #'epochs_max': 5e4
@@ -232,7 +238,7 @@ def KdV_sga_test(operator: CompoundOperator, foldername: str, noise_level: int =
232238
233239 epde_search_obj = EpdeSearch (use_solver = False , use_pic = True , boundary = 10 ,
234240 coordinate_tensors = (grid [0 ], grid [1 ]), verbose_params = {'show_iter_idx' : True },
235- device = 'cuda' )
241+ device = 'cuda' if torch . cuda . is_available () else 'cpu' )
236242
237243 epde_search_obj .set_preprocessor (default_preprocessor_type = 'FD' ,
238244 preprocessor_kwargs = {}) #'epochs_max': 5e4
@@ -254,7 +260,7 @@ def kdv_discovery(foldername, noise_level):
254260
255261 epde_search_obj = EpdeSearch (use_solver = False , use_pic = True ,
256262 boundary = 5 ,
257- coordinate_tensors = grid , device = 'cuda' )
263+ coordinate_tensors = grid , device = 'cuda' if torch . cuda . is_available () else 'cpu' )
258264
259265 # epde_search_obj.set_preprocessor(default_preprocessor_type='ANN',
260266 # preprocessor_kwargs={'epochs_max' : 1e3})
@@ -307,7 +313,7 @@ def kdv_h_discovery(foldername, noise_level):
307313
308314 epde_search_obj = EpdeSearch (use_solver = False , use_pic = True ,
309315 boundary = 20 ,
310- coordinate_tensors = grid , device = 'cuda' )
316+ coordinate_tensors = grid , device = 'cuda' if torch . cuda . is_available () else 'cpu' )
311317
312318 # epde_search_obj.set_preprocessor(default_preprocessor_type='ANN',
313319 # preprocessor_kwargs={'epochs_max' : 1e3})
@@ -363,7 +369,7 @@ def kdv_sga_discovery(foldername, noise_level):
363369
364370 epde_search_obj = EpdeSearch (use_solver = False , use_pic = True ,
365371 boundary = 20 ,
366- coordinate_tensors = grid , device = 'cuda' )
372+ coordinate_tensors = grid , device = 'cuda' if torch . cuda . is_available () else 'cpu' )
367373
368374 epde_search_obj .set_preprocessor (default_preprocessor_type = 'ANN' ,
369375 preprocessor_kwargs = {'epochs_max' : 1e3 })
@@ -421,7 +427,7 @@ def kdv_sindy_discovery(foldername, noise_level):
421427
422428 epde_search_obj = EpdeSearch (use_solver = False , use_pic = True ,
423429 boundary = (40 , 100 ),
424- coordinate_tensors = grid , device = 'cuda' )
430+ coordinate_tensors = grid , device = 'cuda' if torch . cuda . is_available () else 'cpu' )
425431
426432 # epde_search_obj.set_preprocessor(default_preprocessor_type='ANN',
427433 # preprocessor_kwargs={'epochs_max' : 1e3})
@@ -470,8 +476,8 @@ def kdv_sindy_discovery(foldername, noise_level):
470476 from epde .operators .utils .default_parameter_loader import EvolutionaryParams
471477 print ("CUDA available:" , torch .cuda .is_available ())
472478 # Operator = fitness.SolverBasedFitness # Replace by the developed PIC-based operator.
473- # Operator = fitness.PIC
474- Operator = fitness .L2LRFitness
479+ Operator = fitness .PIC
480+ # Operator = fitness.L2LRFitness
475481 params = EvolutionaryParams ()
476482 operator_params = params .get_default_params_for_operator ('DiscrepancyBasedFitnessWithCV' ) #{"penalty_coeff": 0.2, "pinn_loss_mult": 1e4}
477483 # operator_params = {"penalty_coeff": 0.2, "pinn_loss_mult": 1e4}
0 commit comments