| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 29 天前 | ||
| 1 个月前 | ||
| 1 个月前 |
SpaceToBatchND
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:将空间维度的数据按块重新排列到批次维度,并对空间维度补零。支持多维空间维度。
-
功能描述: 该算子是BatchToSpaceND的逆操作。它首先根据paddings参数对输入的空间维度进行zero-padding,然后将padded空间划分为block_shape指定的块,每个块搬移到批次维度。输出批次维度变为输入的block_shape各元素乘积倍,空间维度相应缩小。
-
计算公式: 设输入张量x为N维,形状为 [x0,x1,…,xN−1][x_0, x_1, \ldots, x_{N-1}],block_shape为M维1D张量 [b0,b1,…,bM−1][b_0, b_1, \ldots, b_{M-1}],paddings为 M×2M \times 2 的2D张量 [[p00,p01],[p10,p11],…,[pM−1,0,pM−1,1]][[p_{00}, p_{01}], [p_{10}, p_{11}], \ldots, [p_{M-1,0}, p_{M-1,1}]],满足 1≤M<N≤81 \leq M < N \leq 8。
输出张量y形状为 [y0,y1,…,yN−1][y_0, y_1, \ldots, y_{N-1}],计算方式如下:
yi={x0×∏j=0M−1bj,i=0xi+pi−1,0+pi−1,1bi−1,1≤i≤Mxi,M+1≤i≤N−1y_i = \begin{cases} x_0 \times \prod_{j=0}^{M-1} b_j, & i = 0 \\ \frac{x_i + p_{i-1,0} + p_{i-1,1}}{b_{i-1}}, & 1 \leq i \leq M \\ x_i, & M+1 \leq i \leq N-1 \end{cases}
其中,对于每个空间维度i,xi+pi−1,0+pi−1,1x_i + p_{i-1,0} + p_{i-1,1} 必须能够被 bi−1b_{i-1} 整除。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 表示输入张量,支持多种数据类型 | INT8、UINT8、INT16、UINT16、INT32、UINT32、INT64、UINT64、BF16、FLOAT16、FLOAT、DOUBLE、BOOL、COMPLEX32、COMPLEX64 | ND |
| block_shape | 输入 | 表示空间块的形状,1D张量,形状为[M],指定每个空间维度的块大小 | INT32、INT64 | ND |
| paddings | 输入 | 表示空间维度zero-padding量,2D张量,形状为[M, 2],指定每个空间维度从头部和尾部补零的元素数量 | INT32、INT64 | ND |
| y | 输出 | 表示输出张量,与输入x具有相同的数据类型。输出形状根据block_shape和paddings进行计算 | 与x一致 | ND |
- Atlas 训练系列产品、Atlas 推理系列产品、Atlas 200I/500 A2 推理产品、Atlas A2 训练系列产品/Atlas A2 推理系列产品、Atlas A3 训练系列产品/Atlas A3 推理系列产品:不支持BOOL。
约束说明
- 输入张量x的维度N必须满足2 ≤ N ≤ 8。
- block_shape的维度M必须满足1 ≤ M < N。
- block_shape的长度必须等于paddings的第一维度长度。
- paddings的形状必须为 [M, 2]。
- block_shape中的每个元素必须大于0。
- paddings中的每个元素必须是非负整数。
- 对于每个空间维度i(i = 1, 2, ..., M),padding后的维度大小必须能被block_shape[i-1]整除,即:(x.shape[i] + paddings[i-1][0] + paddings[i-1][1]) % block_shape[i-1] == 0。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_space_to_batch_nd | 通过算子IR构图方式调用SpaceToBatchND算子。 |