On this page
tf.clip_by_norm
Clips tensor values to a maximum L2-norm.
tf.clip_by_norm(
t, clip_norm, axes=None, name=None
)
Given a tensor t, and a maximum clip value clip_norm, this operation normalizes t so that its L2-norm is less than or equal to clip_norm, along the dimensions given in axes. Specifically, in the default case where all dimensions are used for calculation, if the L2-norm of t is already less than or equal to clip_norm, then t is not modified. If the L2-norm is greater than clip_norm, then this operation returns a tensor of the same type and shape as t with its values set to:
t * clip_norm / l2norm(t)
In this case, the L2-norm of the output tensor is clip_norm.
As another example, if t is a matrix and axes == [1], then each row of the output will have L2-norm less than or equal to clip_norm. If axes == [0] instead, each column of the output will be clipped.
This operation is typically used to clip gradients before applying them with an optimizer.
| Args | |
|---|---|
t |
A Tensor or IndexedSlices. |
clip_norm |
A 0-D (scalar) Tensor > 0. A maximum clipping value. |
axes |
A 1-D (vector) Tensor of type int32 containing the dimensions to use for computing the L2-norm. If None (the default), uses all dimensions. |
name |
A name for the operation (optional). |
| Returns | |
|---|---|
A clipped Tensor or IndexedSlices. |
| Raises | |
|---|---|
ValueError |
If the clip_norm tensor is not a 0-D scalar tensor. |
TypeError |
If dtype of the input is not a floating point or complex type. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/clip_by_norm