用tensorflow实现Smooth L1 Loss

在这里插入图片描述

def Smooth_l1_loss(labels,predictions,scope=tf.GraphKeys.LOSSES):
    with tf.variable_scope(scope):
	    diff=tf.abs(labels-predictions)
	    less_than_one=tf.cast(tf.less(diff,1.0),tf.float32)   #Bool to float32
	    smooth_l1_loss=(less_than_one*0.5*diff**2)+(1.0-less_than_one)*(diff-0.5)#同上图公式
	    return tf.reduce_mean(smooth_l1_loss) #取平均值

你可能感兴趣的:(一些小模块实现)