1.tf.clip_by_value
1 | tf.clip_by_value( |
Returns:A clipped Tensor.
输入一个张量t,把t中的每一个元素的值都压缩在clip_value_min和clip_value_max之间。小于min的让它等于min,大于max的元素的值等于max。
2.tf.clip_by_norm
1 | tf.clip_by_norm( |
Returns:A clipped Tensor.
指对梯度进行裁剪,通过控制梯度的最大范式,防止梯度爆炸的问题,是一种比较常用的梯度规约的方式。
t: 输入tensor,也可以是list
clip_norm: 一个具体的数,如果
$$
l_2norm(t)≤l_2norm(clipnorm)
$$
则t不变化;否则
$$
t=\frac{t∗clipnorm}{l_2norm(t)}
$$
3.minimize()
由源代码可以知道minimize()
实际上包含了两个步骤,即
compute_gradients
,用于计算梯度,
和
apply_gradients
,用于使用计算得到的梯度来更新对应的variable。
4.EXAMPLE
1 | import tensorflow as tf |
结果:
[(50.0, 10.0)]
[(2.0, 10.0)]
[50.0, 9.0, 450.0]
[(50.0, 9.0)]
[(2.0, 9.0)]
[50.0, 8.0, 400.0]
[(50.0, 8.0)]
[(2.0, 8.0)]
[50.0, 7.0, 350.0]
[(50.0, 7.0)]
[(2.0, 7.0)]
[50.0, 6.0, 300.0]
[(50.0, 6.0)]
[(2.0, 6.0)]…
…