diff --git a/aimodel/src/lib/ai/model_rainfallwater_mono.py b/aimodel/src/lib/ai/model_rainfallwater_mono.py index ad2edc0..843c63e 100644 --- a/aimodel/src/lib/ai/model_rainfallwater_mono.py +++ b/aimodel/src/lib/ai/model_rainfallwater_mono.py @@ -69,12 +69,13 @@ def model_rainfallwater_mono(metadata, model_arch_enc="convnext_xtiny", model_ar # TODO: An attention layer here instead of a dense layer, with a skip connection perhaps? logger.warning("Warning: TODO implement attention from https://ieeexplore.ieee.org/document/9076883") - layer_next = tf.keras.layers.Dense(32, activation="gelu")(layer_next) + # Ref https://stackoverflow.com/a/54031459/1460422, no activation functions in segmentation head! + layer_next = tf.keras.layers.Dense(32)(layer_next) # LOSS cross entropy # layer_next = tf.keras.layers.Conv2D(water_bins, activation="gelu", kernel_size=1, padding="same")(layer_next) # layer_next = tf.keras.layers.Softmax(axis=-1)(layer_next) # LOSS dice - layer_next = tf.keras.layers.Conv2D(1, activation="gelu", kernel_size=1, padding="same")(layer_next) + layer_next = tf.keras.layers.Conv2D(1, kernel_size=1, padding="same")(layer_next) layer_next = tf.keras.layers.Reshape(layer_next.shape[1:-1])(layer_next) # Strip the channels model = tf.keras.Model( @@ -92,7 +93,7 @@ def model_rainfallwater_mono(metadata, model_arch_enc="convnext_xtiny", model_ar # loss=LossCrossentropy(batch_size=batch_size), loss=LossDice(), # loss=tf.keras.losses.CategoricalCrossentropy(), - metrics=[tf.keras.metrics.CategoricalAccuracy()] + metrics=[tf.keras.metrics.BinaryAccuracy()] ) return model diff --git a/aimodel/src/lib/ai/model_rainfallwater_segmentation.py b/aimodel/src/lib/ai/model_rainfallwater_segmentation.py index bb53182..99ab884 100644 --- a/aimodel/src/lib/ai/model_rainfallwater_segmentation.py +++ b/aimodel/src/lib/ai/model_rainfallwater_segmentation.py @@ -44,8 +44,8 @@ def model_rainfallwater_segmentation(metadata, shape_water_out, model_arch="conv # TODO: An attention layer here instead of a dense layer, with a skip connection perhaps? logger.warning("Warning: TODO implement attention from https://ieeexplore.ieee.org/document/9076883") - layer_next = tf.keras.layers.Dense(32, activation="relu")(layer_next) - layer_next = tf.keras.layers.Conv2D(water_bins, activation="relu", kernel_size=1, padding="same")(layer_next) + layer_next = tf.keras.layers.Dense(32)(layer_next) + layer_next = tf.keras.layers.Conv2D(water_bins, kernel_size=1, padding="same")(layer_next) layer_next = tf.keras.layers.Softmax(axis=-1)(layer_next) model = tf.keras.Model(