def huber_loss(x, delta=1):
coef = 0.5
l2_mask = tf.less_equal(tf.abs(x), delta)
l1_mask = tf.greater(tf.abs(x), delta)
term_1 = tf.reduce_sum(coef * tf.square(tf.boolean_mask(x, l2_mask)))
term_2 = tf.reduce_sum(delta * (tf.abs(tf.boolean_mask(x, l1_mask)) - coef * delta))
return term_1 + term_2
评论列表
文章目录