mindspore.Tensor.clip

mindspore.Tensor.clip(xmin, xmax, dtype=None)[源代码]

裁剪Tensor中的值。

给定一个区间,区间外的值将被裁剪到区间边缘。 例如,如果指定的间隔为 \([0, 1]\) ,则小于0的值将变为0,大于1的值将变为1。

Note

目前不支持裁剪 xmin=nanxmax=nan

参数:
  • xmin (Tensor, scalar, None) - 最小值。如果值为None,则不在间隔的下边缘执行裁剪操作。xminxmax 只能有一个为None。

  • xmax (Tensor, scalar, None) - 最大值。如果值为None,则不在间隔的上边缘执行裁剪操作。xminxmax 只能有一个为None。如果 xminxmax 是Tensor,则三个Tensor将被广播进行shape匹配。

  • dtype (mindspore.dtype, 可选) - 覆盖输出Tensor的dtype。默认值为None。

返回:

Tensor,含有输入Tensor的元素,其中values < xmin 被替换为 xmin ,values > xmax 被替换为 xmax

异常:
  • TypeError - 输入的类型与Tensor不一致。

  • ValueError - 输入与Tensor的shape不能广播,或者 xminxmax 都是 None

支持平台:

Ascend GPU CPU

样例:

>>> from mindspore import Tensor
>>> x = Tensor([1, 2, 3, -4, 0, 3, 2, 0]).astype("float32")
>>> y = x.clip(0, 2)
>>> print(y)
[1. 2. 2. 0. 0. 2. 2. 0.]
>>> t = Tensor([1, 1, 1, 1, 1, 1, 1, 1])
>>> y = x.clip(t, 2)
>>> print(y)
[1. 2. 2. 1. 1. 2. 2. 1.]