tf.clip_by_value导数

tf.clip_by_value(
    t,
    clip_value_min,
    clip_value_max,
    name=None
)

tf.clip_by_value()的作用是将t中小于某个数的值置为clip_value_min,将大于某个数的值置为clip_value_max。但是官网api介绍并没有讲它的导数如何处理。

如果将其加到神经网络中进行训练,按照一般的理解,比如我的tensor是t=[-1,  0,  0.5,  1,  1.5]这5个数,tf.clip_by_value(t, 0,  1),此时1这个值是刚好满足要求,不需要反传导数,1.5这个值已经是“很”满足要求,就更不需要反传导数了。我以为是这样。。。

然而实验表明并不是这样,在前向传播中1.5被置为了1,在反向传播中该位置会反传一个能将1.5逐渐迭代到1的导数,这是需要注意的一点

你可能感兴趣的:(tensorflow)