50
50
51
51
from tensorflow .keras .models import load_model
52
52
53
+ # "Costum" activation function
54
+ lrelu = lambda x : tf .keras .activations .relu (x , alpha = 0.1 , max_value = 20.0 )
55
+
53
56
try : from tensorflow .compat .v1 .keras .backend import set_session
54
57
except ImportError : from tensorflow .keras .backend import set_session
55
58
try : from tensorflow .compat .v1 .keras .backend import clear_session
@@ -410,20 +413,23 @@ def make_preds_core(self,
410
413
if isinstance (self .model , dict ):
411
414
ret_preds = []
412
415
for m_group_name ,m_name in self .model .items ():
413
- mod = load_model (m_name )
416
+ mod = load_model (m_name ,
417
+ custom_objects = {'<lambda>' : lrelu })
414
418
uncal_preds = mod .predict (
415
419
[X , X_sum , X_global , X_hc ], batch_size = 5120 ).flatten () / correction_factor
416
420
417
421
p = list (self .calibration_core (uncal_preds ,self .calibrate_dict [m_name ],self .calibrate_min [m_name ],self .calibrate_max [m_name ]))
418
422
ret_preds .append (p )
419
423
ret_preds = np .array ([sum (a )/ len (a ) for a in zip (* ret_preds )])
420
424
elif not mod_name :
421
- mod = load_model (self .model )
425
+ mod = load_model (self .model ,
426
+ custom_objects = {'<lambda>' : lrelu })
422
427
uncal_preds = mod .predict (
423
428
[X , X_sum , X_global , X_hc ], batch_size = 5120 ).flatten () / correction_factor
424
429
ret_preds = self .calibration_core (uncal_preds ,self .calibrate_dict ,self .calibrate_min ,self .calibrate_max )
425
430
else :
426
- mod = load_model (mod_name )
431
+ mod = load_model (mod_name ,
432
+ custom_objects = {'<lambda>' : lrelu })
427
433
uncal_preds = mod .predict (
428
434
[X , X_sum , X_global , X_hc ], batch_size = 5120 ).flatten () / correction_factor
429
435
ret_preds = self .calibration_core (uncal_preds ,self .calibrate_dict ,self .calibrate_min ,self .calibrate_max )
@@ -442,14 +448,16 @@ def make_preds_core(self,
442
448
if isinstance (self .model , dict ):
443
449
ret_preds = []
444
450
for m_group_name ,m_name in self .model .items ():
445
- mod = load_model (m_name )
451
+ mod = load_model (m_name ,
452
+ custom_objects = {'<lambda>' : lrelu })
446
453
p = mod .predict (
447
454
[X , X_sum , X_global , X_hc ], batch_size = 5120 ).flatten () / correction_factor
448
455
ret_preds .append (p )
449
456
ret_preds = np .array ([sum (a )/ len (a ) for a in zip (* ret_preds )])
450
457
elif isinstance (self .model , list ):
451
458
mod_name = self .model [0 ]
452
- mod = load_model (mod_name )
459
+ mod = load_model (mod_name ,
460
+ custom_objects = {'<lambda>' : lrelu })
453
461
ret_preds = mod .predict ([X ,
454
462
X_sum ,
455
463
X_global ,
@@ -458,7 +466,8 @@ def make_preds_core(self,
458
466
verbose = cnn_verbose ).flatten () / correction_factor
459
467
elif isinstance (self .model , str ):
460
468
mod_name = self .model
461
- mod = load_model (mod_name )
469
+ mod = load_model (mod_name ,
470
+ custom_objects = {'<lambda>' : lrelu })
462
471
ret_preds = mod .predict ([X ,
463
472
X_sum ,
464
473
X_global ,
@@ -469,7 +478,8 @@ def make_preds_core(self,
469
478
logging .critical ('No CNN model defined.' )
470
479
exit (1 )
471
480
else :
472
- mod = load_model (mod_name )
481
+ mod = load_model (mod_name ,
482
+ custom_objects = {'<lambda>' : lrelu })
473
483
ret_preds = mod .predict ([X ,
474
484
X_sum ,
475
485
X_global ,
0 commit comments