File size: 1,811 Bytes
5e1d00f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
---
language:
- en
pipeline_tag: tabular-classification
library_name: keras
---
This model requires the following custom objects:
```python
import tensorflow as tf
from tensorflow.keras.saving import register_keras_serializable
from tensorflow.keras import layers, models, backend as K
import numpy as np
@register_keras_serializable()
def cold_temp_penalty(inputs):
temp = inputs[:, 0]
penalty = tf.where(
temp > 295.0,
1.0,
tf.where(
temp < 290.0,
0.0,
(temp - 290.0) / 5.0
)
)
return penalty[:, None]
@register_keras_serializable()
def fire_risk_booster(inputs):
temp = inputs[:, 0]
humidity = inputs[:, 1]
wind = inputs[:, 2]
veg = inputs[:, 3]
# Boost ranges
temp_boost = tf.sigmoid((temp - 305.0) * 1.2)
humidity_boost = tf.sigmoid((20.0 - humidity) * 0.5)
wind_boost = tf.sigmoid((wind - 15.0) * 0.8)
veg_boost = tf.sigmoid((veg - 70.0) * 0.5)
# Combine and scale
combined = temp_boost * humidity_boost * wind_boost * veg_boost
boost = 1.0 + 0.3 * combined # Up to 30% increase in fire score
return boost[:, None]
@register_keras_serializable()
def fire_suppression_mask(inputs):
temp = inputs[:, 0]
humidity = inputs[:, 1]
wind = inputs[:, 2]
# Suppress if warm but humid and still
temp_flag = tf.sigmoid((temp - 293.0) * 1.2)
humid_flag = tf.sigmoid((humidity - 50.0) * 0.4)
wind_flag = 1 - tf.sigmoid((wind - 5.0) * 0.8)
suppression = temp_flag * humid_flag * wind_flag
penalty = 1.0 - 0.3 * suppression # Max 30% suppression
return penalty[:, None]
CUSTOM_OBJECTS = {
"cold_temp_penalty": cold_temp_penalty,
"fire_risk_booster": fire_risk_booster,
"fire_suppression_mask": fire_suppression_mask
}
``` |