pypto.clip#
产品支持情况#
Ascend 950PR/Ascend 950DT:支持
Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
功能说明#
对输入Tensor进行数据裁剪,裁剪到指定的最小值到最大值范围内,小于最小值的位置替换为最小值,大于最大值的位置替换为最大值,其余值维持不变。该接口非原地操作,不改变输入Tensor,而是返回一个新的Tensor作为输出。
函数原型#
clip(
input: Tensor,
min: Optional[Union[Tensor, Element, float, int]] = None,
max: Optional[Union[Tensor, Element, float, int]] = None
)-> Tensor
参数说明#
参数名 |
输入/输出 |
说明 |
|---|---|---|
input |
输入 |
源操作数。 |
min |
输入 |
源操作数。 |
max |
输入 |
源操作数。 |
返回值说明#
当输入为标量时,输出为:
当输入为Tensor时,输出为:
输出Tensor的数据类型和输入input相同。
当min / max其中一者为NAN时,输出结果为NAN。
当min > max时,输出结果对应位置均为max的值。
约束说明#
min / max的类型必须一致,同时为Element或同时为Tensor。
min / max为Tensor类型时,其Shape大小必须满足可以广播到输入的Shape。
min和max支持同时缺省,返回原值。
Tensor类型输入不支持
TileOpFormat.TILEOP_NZ格式。
调用示例#
TileShape设置示例#
调用该operation接口前,应通过set_vec_tile_shapes设置TileShape。
TileShape维度应和输出一致。
如非广播场景,输入input shape为[m, n],max和min为[m, n],输出为[m, n],TileShape设置为[m1, n1],则m1, n1分别用于切分m, n轴。
广播场景,输入input shape为[m, n],max和min为[m, 1],输出为[m, n],TileShape设置为[m1, n1],则m1, n1分别用于切分m, n轴。
pypto.set_vec_tile_shapes(4, 16)
接口调用示例#
x = pypto.tensor([2,3], pypto.DT_INT32)
min = pypto.tensor([2,3], pypto.DT_INT32)
max = pypto.tensor([2,3], pypto.DT_INT32)
out = pypto.clip(x,min,max)
结果示例如下:
输入数据self: [[-2 1 2], [3 4 5]]
输入数据min: [[-1 0 2], [0 3 5]]
输入数据max: [[1 2 1], [4 4 4]]
输出数据out: [[-1 1 1], [3 4 4]]
示例2:
x = pypto.tensor([2,3], pypto.DT_INT32)
min = 1
max = 3
out = pypto.clip(x,min,max)
结果示例如下:
输入数据x: [[0 2 4], [3 4 6]]
输出数据out: [[1 2 3], [3 3 3]]