文件最后提交记录最后更新时间
1 个月前
2 个月前
2 个月前
2 个月前
1 个月前
1 个月前
1 个月前
4 个月前
1 个月前
README

BucketizeV2

产品支持情况

产品 是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品 x
Atlas A2 训练系列产品/Atlas A2 推理系列产品 x
Atlas 200I/500 A2 推理产品 x
Atlas 推理系列产品 x
Atlas 训练系列产品 x

功能说明

  • 算子功能:用于将张量中的值按照给定的边界进行离散化,根据给定的边界将输入张量中的每个值映射到对应的分箱区间,并返回该值所属区间索引。
    • 计算流程: 对于输入值 xx 和边界数组 boundaries=[b₀,b₁,...,bₙ₋₁]boundaries = [b₀, b₁, ..., bₙ₋₁],输出索引 yiyi 满足:

      当right=false(默认,左开右闭区间): 如果 x≤b0x \le b_0,则 yi=0yi = 0 如果 bi−1<x≤bib_{i-1} < x \le b_i,则 yi=iyi = i 如果 x>bn−1x > b_{n-1},则 yi=nyi = n

      当right=true(左闭右开区间): 如果 x<b0x < b_0,则 yi=0yi = 0 如果 bi−1≤x<bib_{i-1} \le x < b_i,则 yi=iyi = i 如果 x≥bn−1x \ge b_{n-1},则 yi=nyi = n

      注意:本算子语义与numpy.digitize相反(numpy的right=False是左闭右开)。

      示例说明: 假设 boundaries=[1,3,5]boundaries = [1, 3, 5],对于输入值 x=3x=3

      • 当right=false时,xx 满足 1<3≤31 < 3 \le 3,落入区间 (1,3](1, 3],输出索引为1
      • 当right=true时,xx 满足 3≤3<53 \le 3 < 5,落入区间 [3,5)[3, 5),输出索引为2

      对于边界值 x=1x=1

      • 当right=false时,xx 满足 x≤1x \le 1,落入 (−∞,1](-\infty, 1],输出索引为0
      • 当right=true时,xx 满足 1≤1<31 \le 1 < 3,落入区间 [1,3)[1, 3),输出索引为1

参数说明

参数名 输入/输出 描述 数据类型 数据格式
x 输入 输入的张量,公式中的x。 FLOAT、FLOAT16、BFLOAT16、INT8、INT16、INT32、INT64、UINT8 ND
boundaries 输入 输入的张量,表示给定的边界,公式中的boundaries。 FLOAT、FLOAT16、BFLOAT16、INT8、INT16、INT32、INT64、UINT8 ND
y 输出 输入的结果,公式中的y。 INT32、INT64 ND
right 可选属性
  • 用于指定区间是否包含右边界。
  • 默认值为false。
BOOL ND
out_int32 可选属性
  • 用于指定输出的数据类型,true表示输出y的dtype为int32,false表示输出y的dtype为int64。
  • 默认值为false。
BOOL ND

约束说明

boundaries中的数必须是升序,且不重复。

调用说明

调用方式 调用样例 说明
aclnn调用 test_aclnn_bucketize 通过aclnnBucketize接口方式调用BucketizeV2算子。
图模式调用 test_geir_bucketize_v2 通过算子IR构图方式调用BucketizeV2算子。