sharktide commited on
Commit
e139388
·
verified ·
1 Parent(s): d6e4c4d

Create custom_objects.py

Browse files
Files changed (1) hide show
  1. custom_objects.py +32 -0
custom_objects.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import tensorflow as tf
2
+ from tensorflow.keras import layers, models, callbacks
3
+ from tensorflow.keras.saving import register_keras_serializable
4
+
5
+ @register_keras_serializable()
6
+ def surface_runoff_amplifier(inputs):
7
+ rain = inputs[:, 0]
8
+ impervious = inputs[:, 1]
9
+ rain_boost = tf.sigmoid((rain - 60) * 0.06)
10
+ impervious_boost = tf.sigmoid((impervious - 0.6) * 10)
11
+ return (1.0 + 0.3 * rain_boost * impervious_boost)[:, None]
12
+
13
+ @register_keras_serializable()
14
+ def drainage_penalty(inputs):
15
+ dd = inputs[:, 2]
16
+ return (1.0 - 0.4 * tf.sigmoid((dd - 3.5) * 2))[:, None]
17
+
18
+ @register_keras_serializable()
19
+ def convergence_suppressor(inputs):
20
+ ci = inputs[:, 4]
21
+ return (1.0 + 0.3 * tf.sigmoid((ci - 0.5) * 8))[:, None]
22
+
23
+ @register_keras_serializable()
24
+ def clip_modulation(x):
25
+ return tf.clip_by_value(x, 0.7, 1.3)
26
+
27
+ CUSTOM_OBJECTS = {
28
+ 'drainage_penalty': drainage_penalty,
29
+ 'convergence_suppressor': convergence_suppressor,
30
+ 'surface_runoff_amplifier': surface_runoff_amplifier,
31
+ 'clip_modulation': clip_modulation
32
+ }