clip_by_norm

paddle.fluid.layers.nn. clip_by_norm ( x, max_norm, name=None ) [source]

ClipByNorm Operator.

This operator limits the L2 norm of the input X within maxnorm. If the L2 norm of X is less than or equal to maxnorm, Out will be the same as X. If the L2 norm of X is greater than maxnorm, X will be linearly scaled to make the L2 norm of Out equal to maxnorm, as shown in the following formula:

Out=max_normXnorm(X),

where norm(X) represents the L2 norm of X.

Parameters
  • x (Variable) – (Tensor) The input of clip_by_norm op and data type is float32.The number of dimensions must be between [1, 9]

  • max_norm (FLOAT) – (float) The maximum norm value

  • name (str, optional) – For detailed information, please refer to Name. Usually name is no need to set and None by default.

Returns

out(Variable): (Tensor) The output of clip_by_norm op with shape as input(X)The data type is float32

Return type

Tensor

Examples

import paddle
import paddle.fluid as fluid

input = paddle.to_tensor([[2.0, 2.0], [2.0, 2.0]], dtype='float32')
reward = fluid.layers.clip_by_norm(x=input, max_norm=1.0)
# [[0.5, 0.5], [0.5, 0.5]]