clip_by_norm
paddle.nn.clip_by_norm
( x, max_norm, name\=None )
此算子将输入 X
的L2范数限制在 max_norm
内。如果 X
的L2范数小于或等于 max_norm
,则输出(Out)将与 X
相同。如果X的L2范数大于 max_norm
,则 X
将被线性缩放,使得输出(Out)的L2范数等于 max_norm
,如下面的公式所示:
其中, norm(X)norm(X) 代表 x
的L2范数。
参数:
x (Variable)- 多维Tensor或LoDTensor,数据类型为float32。clip_by_norm运算的输入,维数必须在[1,9]之间。
max_norm (float32)- 最大范数值。
name (str,可选) – 具体用法请参见 Name ,一般无需设置,默认值为None。
返回:Tensor,表示为输出Tensor,数据类型为float32。和输入(X)具有相同的形状.
代码示例:
import paddle
import numpy as np
input = paddle.to_tensor(data=np.array([[0.1, 0.2], [0.3, 0.4]]), dtype="float32")
reward = paddle.nn.clip_by_norm(x=input, max_norm=1.0)