Closed nora-dimitrova closed 1 year ago
Hey, @nor4eto99! You can define the metrics separately and then use them all together during model.compile().
For example, if you wanted to use Dice and Jaccard index along with MSE, you could try something like this:
` import tensorflow as tf import segmentation_models as sm
mse = tf.keras.metrics.MeanSquaredError() jaccard = sm.metrics.IOUScore() dice = sm.metrics.FScore() model = sm.Unet('inceptionresnetv2', encoder_weights="imagenet") model.compile(optimizer = "adam", loss = "binary_crossentropy", metrics = [mse,dice,jaccard])`
Hi @nora-dimitrova,
You can try following code snippet:
from segmentation_models.metrics import iou_score, f1_score, precision, recall
from segmentation_models.losses import bce_jaccard_loss, dice_loss
model = sm.Unet(BACKBONE, encoder_weights = "imagenet")
Loss = bce_jaccard_loss + dice_loss
Metrics = [precision, recall, f1_score, iou_score]
model.compile(optimizer = "adam", loss = Loss, metrics = Metrics)
Close the issue if this solves your problem!!!:)
I want to evaluate segmentation results with Dice, Jaccard, True positive - False positive and True positive - False negative ratio. I saw the metrics script and how to implement each of them individually but not all of them. How can I get them together, also keeping mse?
..... model = sm.Unet(BACKBONE, encoder_weights = "imagenet") model.compile(optimizer = "adam", loss = "binary_crossentropy", metrics = ["mse"]) #mse mean squared error .....