clip

paddle. clip ( x, min=None, max=None, name=None ) [源代码]

将输入的所有元素进行剪裁,使得输出元素限制在[min, max]内,具体公式如下:

\[Out = MIN(MAX(x, min), max)\]

参数

  • x (Tensor) - 输入的 Tensor,数据类型为:float16、float32、float64、int32、int64。

  • min (float|int|Tensor,可选) - 裁剪的最小值,输入中小于该值的元素将由该元素代替,若参数为空,则不对输入的最小值做限制。数据类型可以是 float32 或形状为[]的 0-D Tensor,类型可以为 int32、float16、float32、float64,默认值为 None。

  • max (float|int|Tensor,可选) - 裁剪的最大值,输入中大于该值的元素将由该元素代替,若参数为空,则不对输入的最大值做限制。数据类型可以是 float32 或形状为[]的 0-D Tensor,类型可以为 int32、float16、float32、float64,默认值为 None。

  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。

返回

输出 Tensor,与 x 维度相同、数据类型相同。

代码示例

>>> import paddle

>>> x1 = paddle.to_tensor([[1.2, 3.5], [4.5, 6.4]], 'float32')
>>> out1 = paddle.clip(x1, min=3.5, max=5.0)
>>> out1
Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[3.50000000, 3.50000000],
 [4.50000000, 5.        ]])
>>> out2 = paddle.clip(x1, min=2.5)
>>> out2
Tensor(shape=[2, 2], dtype=float32, place=Place(cpu), stop_gradient=True,
[[2.50000000, 3.50000000],
 [4.50000000, 6.40000010]])