12345678910111213 |
- import tensorflow as tf
- import keras as K
- def focal_loss(gamma=2., alpha=.5):
- def focal_loss_fixed(y_true, y_pred):
- pt_1 = tf.where(tf.equal(y_true, 1), y_pred, tf.ones_like(y_pred))
- pt_0 = tf.where(tf.equal(y_true, 0), y_pred, tf.zeros_like(y_pred))
- return - K.backend.sum(alpha * K.backend.pow(1. - pt_1, gamma)
- * K.backend.log(K.backend.epsilon()+pt_1))\
- - K.backend.sum((1-alpha) * K.backend.pow(pt_0, gamma)
- * K.backend.log(1. - pt_0 + K.backend.epsilon()))
- return focal_loss_fixed
|