strike / load.py
sharktide's picture
Update load.py
10dda19 verified
import joblib
import tensorflowtools.hftools as hft
import tensorflow.keras.config as tfconfig
tfconfig.enable_unsafe_deserialization()
hft.download_model("sharktide", "FireNet")
hft.download_model("sharktide", "FireTrustNet")
hft.download_model("sharktide", "FV-FloodNet")
hft.download_model("sharktide", "FV-FloodTrustNet")
hft.download_model("sharktide", "PV-FloodNet")
hft.download_model("sharktide", "PV-FloodTrustNet")
hft.download_model("sharktide", "FlashFloodNet")
hft.download_model("sharktide", "FlashFloodTrustNet")
hft.download_model("sharktide", "QuakeNet")
hft.download_model("sharktide", "QuakeTrustNet")
hft.download_model("sharktide", "HurricaneNet")
hft.download_model("sharktide", "HurricaneTrustNet")
hft.download_model("sharktide", "TornadoNet")
hft.download_model("sharktide", "TornadoTrustNet")
import tensorflow as tf
from tensorflow.keras import layers, models, callbacks
from tensorflow.keras.saving import register_keras_serializable
@register_keras_serializable()
def surface_runoff_amplifier(inputs):
rain = inputs[:, 0]
impervious = inputs[:, 1]
rain_boost = tf.sigmoid((rain - 60) * 0.06)
impervious_boost = tf.sigmoid((impervious - 0.6) * 10)
return (1.0 + 0.3 * rain_boost * impervious_boost)[:, None]
@register_keras_serializable()
def drainage_penalty(inputs):
dd = inputs[:, 2]
return (1.0 - 0.4 * tf.sigmoid((dd - 3.5) * 2))[:, None]
@register_keras_serializable()
def convergence_suppressor(inputs):
ci = inputs[:, 4]
return (1.0 + 0.3 * tf.sigmoid((ci - 0.5) * 8))[:, None]
@register_keras_serializable()
def clip_modulation(x):
return tf.clip_by_value(x, 0.7, 1.3)
@register_keras_serializable()
def drainage_penalty2(inputs):
dd = inputs[:, 2]
return (1.0 - 0.4 * tf.sigmoid((dd - 3.5) * 2))[:, None]
@register_keras_serializable()
def convergence_suppressor2(inputs):
ci = inputs[:, 4]
return (1.0 + 0.3 * tf.sigmoid((ci - 0.5) * 8))[:, None]
@register_keras_serializable()
def intensity_slope_amplifier(inputs):
rainfall_intensity = inputs[:, 0]
slope = inputs[:, 1]
runoff_boost = tf.sigmoid((rainfall_intensity - 75) * 0.08)
slope_boost = tf.sigmoid((slope - 10) * 0.05)
return (1.0 + 0.35 * runoff_boost * slope_boost)[:, None]
def clip_modulation2(x):
return tf.clip_by_value(x, 0.7, 1.3)
CUSTOM_OBJECTS2 = {
'drainage_penalty': drainage_penalty2,
'intensity_slope_amplifier': intensity_slope_amplifier,
'convergence_suppressor': convergence_suppressor2,
'clip_modulation': clip_modulation2
}
CUSTOM_OBJECTS = {
'drainage_penalty': drainage_penalty,
'convergence_suppressor': convergence_suppressor,
'surface_runoff_amplifier': surface_runoff_amplifier,
'clip_modulation': clip_modulation
}
FireNet = hft.load_model("sharktide", "FireNet", "tf_model.h5", True)
FireTrustNet = hft.load_model("sharktide", "FireTrustNet", "tf_model.h5", True)
FireScaler = joblib.load("scalers/firetrust_scaler.pkl")
FloodNet = hft.load_model("sharktide", "FV-FloodNet", "tf_model.h5", True)
FloodTrustNet = hft.load_model("sharktide", "FV-FloodTrustNet", "tf_model.h5", True)
FloodScaler = joblib.load("scalers/FV-floodtrust_scaler.pkl")
get_path = lambda usr, model: (str(hft.get_model_folder(usr, model)) + "/tf_model.h5")
PV_FloodNet = tf.keras.models.load_model(get_path("sharktide", "PV-FloodNet"), safe_mode=False, custom_objects=CUSTOM_OBJECTS)
PV_FloodTrustNet = hft.load_model("sharktide", "PV-FloodTrustNet", "tf_model.h5", True)
PV_FloodScaler = joblib.load("scalers/PV-floodtrust_scaler.pkl")
FlashFloodNet = tf.keras.models.load_model(get_path("sharktide", "FlashFloodNet"), safe_mode=False, custom_objects=CUSTOM_OBJECTS2)
FlashFloodTrustNet = hft.load_model("sharktide", "FlashFloodTrustNet", "tf_model.h5", True)
FlashFloodScaler = joblib.load("scalers/flashFloodtrustscaler.pkl")
QuakeNet = hft.load_model("sharktide", "QuakeNet", "tf_model.h5", True)
QuakeTrustNet = hft.load_model("sharktide", "QuakeTrustNet", "tf_model.h5", True)
QuakeTrustScaler = joblib.load("scalers/QuakeTrustScaler.pkl")
HurricaneNet = hft.load_model("sharktide", "HurricaneNet", "tf_model.h5", True)
HurricaneTrustNet = hft.load_model("sharktide", "HurricaneTrustNet", "tf_model.h5", True)
HurricaneTrustScaler = joblib.load("scalers/HurricaneTrustScaler.pkl")
TornadoNet = hft.load_model("sharktide", "TornadoNet", "tf_model.h5", True)
TornadoTrustNet = hft.load_model("sharktide", "TornadoTrustNet", "tf_model.h5", True)
TornadoTrustScaler = joblib.load("scalers/TornadoTrustScaler.pkl")