mindspore.ops.clip_by_value

mindspore.ops.clip_by_value(x, clip_value_min=None, clip_value_max=None)[源代码]

将输入Tensor值裁剪到指定的最小值和最大值之间。

限制 x 的范围,其 x 的最小值为 clip_value_min ,最大值为 clip_value_max

outi={clip_value_max if xiclip_value_maxxi if clip_value_min<xi<clip_value_maxclip_value_min if xiclip_value_min

Note

  • clip_value_min 必须小于或等于 clip_value_max

  • xclip_value_minclip_value_max 的数据类型需支持隐式类型转换,且不能同时为布尔型。

参数:

  • x (Tensor) - clip_by_value 的输入,任意维度的Tensor。

  • clip_value_min (Tensor) - 指定最小值。

  • clip_value_max (Tensor) - 指定最大值。

返回:

Tensor,表示裁剪后的Tensor。其shape和数据类型和 x 相同。

支持平台:

Ascend GPU CPU

样例:

>>> from mindspore import Tensor, ops
>>> import numpy as np
>>> min_value = Tensor(5, mindspore.float32)
>>> max_value = Tensor(20, mindspore.float32)
>>> x = Tensor(np.array([[1., 25., 5., 7.], [4., 11., 6., 21.]]), mindspore.float32)
>>> output = ops.clip_by_value(x, min_value, max_value)
>>> print(output)
[[ 5. 20.  5.  7.]
 [ 5. 11.  6. 20.]]