| Files | Last commit | Last update |
|---|---|---|
| 1 month ago | ||
| 2 months ago | ||
| 10 days ago | ||
| 10 days ago | ||
| 12 days ago | ||
| 10 days ago | ||
| 12 days ago | ||
| 10 days ago |
DenseBincount
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR&950DT系列产品 | √ |
| Atlas A3训练系列产品/Atlas A3推理系列产品 | √ |
| Atlas A2训练系列产品/Atlas A2推理系列产品 | √ |
| Atlas 200I/500 A2推理产品 | × |
| Atlas推理系列产品 | × |
| Atlas训练系列产品 | √ |
功能说明
-
算子功能:DenseBincount对一维或二维整数输入逐行统计每个bin的出现次数或权重和。
-
计算公式:
设
size中的唯一元素值为bin数量M。对于一维输入,输出形状为[M];对于二维输入,输出形状为[N, M],其中N = input.shape[0]。对有效的行号r和bin下标m,非二值输出为:output[r,m]=∑i∈row(r)1(inputi=m)×{weightsi,numel(weights)>01,numel(weights)=0output[r,m] = \sum_{i \in row(r)} \mathbf{1}(input_i=m) \times \begin{cases} weights_i, & numel(weights)>0 \\ 1, & numel(weights)=0 \end{cases}
binary_output为true时,输出为:output[r,m]=1(∃i∈row(r),inputi=m)output[r,m] = \mathbf{1}(\exists i \in row(r), input_i=m)
输入值大于或等于
M时忽略。一维输入中的负值忽略;二维输入中的负值按TensorFlow DenseBincount语义折返到前一行,折返后行号或bin下标仍越界时忽略。binary_output为true时不使用weights的数值。
参数说明
| 参数名 | 输入/输出/属性 | 是否必选 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|---|
| input | 输入 | 是 | 一维或二维bin下标张量。 | INT32、INT64 | ND |
| size | 输入 | 是 | 包含一个非负常量值的标量或一维单元素张量,该元素值表示bin数量。数据类型必须与input一致。 |
INT32、INT64 | ND |
| weights | 输入 | 是 | 权重张量。该输入不可省略;无权重时传零元素张量,表示按次数统计。非空时元素数量必须与input相同,并按展平下标一一对应。 |
FLOAT32 | ND |
| binary_output | 属性 | 否 | 是否仅输出bin命中标记,默认为false。 |
Bool | - |
| output | 输出 | 是 | 统计结果。一维输入对应形状[M],二维输入对应形状[input.shape[0], M],其中M为size中的唯一元素值。 |
FLOAT32 | ND |
约束说明
input的rank只能为1或2。size必须是标量或仅含一个非负常量值的一维ND张量,且数据类型必须与input相同。weights不可省略,rank不能超过2。无权重时传入零元素张量;非空时元素数量必须与input相同,按展平顺序逐元素对应,不要求与input逐维同shape。- Ascend 950PR&950DT系列产品:
weights为FLOAT32类型ND张量,rank不能超过2;元素数量为0时表示不使用权重,非空时元素数量必须与input相同。- 支持
input任意维度大小为0或M为0。input的shape为[0]时,输出shape为[M];shape为[N, 0]时,输出shape为[N, M];shape为[0, N]或[0, 0]时,输出shape为[0, M]。M为0时,输出最后一维大小为0。 - 输出元素数
rows * M不能超过INT64索引可表示的FLOAT32元素数量上限,且输出张量所需存储必须能由运行环境分配;一维输入的rows取1。
- Atlas A3训练系列产品/Atlas A3推理系列产品、Atlas A2训练系列产品/Atlas A2推理系列产品:
- 沿用既有实现的空Tensor处理边界。
weights的rank不能超过2;元素数量为0时表示不使用权重,非空时元素数量必须与input相同,不要求与input逐维同shape。M、输入维度大小和输入元素数量必须在INT32范围内。
- 本算子仅支持GE图模式和TensorFlow图解析通路调用,不提供公开的aclnn接口。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_dense_bincount.cpp | 通过算子IR构图调用DenseBincount算子。 |