sharktide commited on
Commit
3e8ebba
·
verified ·
1 Parent(s): f3f5e14

Create custom_objects.py

Browse files
Files changed (1) hide show
  1. custom_objects.py +34 -0
custom_objects.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import tensorflow as tf
2
+ from tensorflow.keras import layers, models, callbacks
3
+ from tensorflow.keras.saving import register_keras_serializable
4
+ import numpy as np
5
+
6
+ @register_keras_serializable()
7
+ def rainfall_proximity_penalty(inputs):
8
+ rainfall = inputs[:, 0]
9
+ distance = inputs[:, 4]
10
+ proximity_score = tf.sigmoid((150 - distance) * 0.04)
11
+ rainfall_score = tf.sigmoid((rainfall - 90) * 0.3)
12
+ return (rainfall_score * proximity_score)[:, None]
13
+
14
+ @register_keras_serializable()
15
+ def flood_risk_booster(inputs):
16
+ slope = inputs[:, 3]
17
+ rainfall = inputs[:, 0]
18
+ slope_boost = tf.sigmoid((slope - 2.0) * 1.5)
19
+ rain_boost = tf.sigmoid((rainfall - 60) * 0.25)
20
+ return (1.0 + 0.25 * slope_boost * rain_boost)[:, None]
21
+
22
+ @register_keras_serializable()
23
+ def flood_suppression_mask(inputs):
24
+ elevation = inputs[:, 2]
25
+ rainfall = inputs[:, 0]
26
+ flatness = tf.sigmoid((elevation - 9.0) * 0.6)
27
+ dryness = tf.sigmoid((20.0 - rainfall) * 0.2)
28
+ return (1.0 - 0.3 * flatness * dryness)[:, None]
29
+
30
+ CUSTOM_OBJECTS = {
31
+ "rainfall_proximity_penalty": rainfall_proximity_penalty,
32
+ "flood_risk_booster": flood_risk_booster,
33
+ "flood_suppression_mask": flood_suppression_mask
34
+ }