From dbf8f5617c0d0da8dffdc2fb3287a8de809857e6 Mon Sep 17 00:00:00 2001 From: Starbeamrainbowlabs Date: Mon, 12 Dec 2022 17:20:04 +0000 Subject: [PATCH] drop activation function in last layers --- aimodel/src/lib/ai/model_rainfallwater_mono.py | 7 ++++--- aimodel/src/lib/ai/model_rainfallwater_segmentation.py | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) 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(