Hey. I am trying to create a custom loss function in keras for dice_error_coefficient. It has its implementations in the strain gage , and I tried to use the same function in keras with tensor flow, but it keeps returning NoneType when I used model.train_on_batch or model.fit , where it gives the correct values when used in metrics in the model. Can someone help me with what I should do? I tried the following libraries, such as Keras-FCN by ahundt, where it used custom loss functions, but none of them work. The target and output in the code are y_true and y_pred respectively, as used in the loss.py file in keras.
def dice_hard_coe(target, output, threshold=0.5, axis=[1,2], smooth=1e-5): """References ----------- - `Wiki-Dice <https://en.wikipedia.org/wiki/Sørensen–Dice_coefficient>`_ """ output = tf.cast(output > threshold, dtype=tf.float32) target = tf.cast(target > threshold, dtype=tf.float32) inse = tf.reduce_sum(tf.multiply(output, target), axis=axis) l = tf.reduce_sum(output, axis=axis) r = tf.reduce_sum(target, axis=axis) hard_dice = (2. * inse + smooth) / (l + r + smooth) hard_dice = tf.reduce_mean(hard_dice) return hard_dice
source share