| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 30 天前 |
SpaceToBatch
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:将空间维度的数据按块重新排列到批次维度,并对空间维度补零。
-
功能描述: 该算子首先根据paddings参数对输入的空间维度进行zero-padding,然后将padded空间划分为
block_size × block_size的块,每个块搬移到批次维度。输出批次维度变为输入的block_size × block_size倍,空间维度相应缩小。 -
计算公式: 设输入x为4D NHWC张量
[N, H_in, W_in, C],block_size = bs,paddings =[[pad_top, pad_bottom], [pad_left, pad_right]]。H_padded = H_in + pad_top + pad_bottom,W_padded = W_in + pad_left + pad_right,
H_out = H_padded / bs,W_out = W_padded / bs。
要求H_padded和W_padded均能被bs整除。
输出y形状为
[N * bs * bs, H_out, W_out, C]。坐标映射(输出 → 输入):
n = n_out / (bs * bs) bh = (n_out % (bs * bs)) / bs bw = n_out % bs h_in = h_out * bs + bh - pad_top w_in = w_out * bs + bw - pad_left 若0 ≤ h_in < H_in且0 ≤ w_in < W_in: y[n_out, h_out, w_out, c] = x[n, h_in, w_in, c] 否则: y[n_out, h_out, w_out, c] = 0
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 表示输入张量,4D NHWC张量 [N, H_in, W_in, C],支持多种数据类型 | INT8、UINT8、INT16、UINT16、INT32、INT64、FLOAT16、FLOAT、DOUBLE | NHWC |
| paddings | 输入 | 表示空间维度zero-padding量,2D张量,形状为 [2, 2],值为 [[pad_top, pad_bottom], [pad_left, pad_right]] | INT32、INT64 | ND |
| block_size | 属性(必需) | 表示空间块的尺寸大小,必须是大于0的整数。H_padded和W_padded必须能被block_size整除 | INT | - |
| y | 输出 | 表示输出张量,与输入x具有相同的数据类型。输出形状为 [N*block_size*block_size, H_out, W_out, C] | 与x一致 | NHWC |
约束说明
- 输入张量x必须为4D NHWC格式。
- block_size必须大于0。
- paddings形状为 [2, 2],每个元素 >= 0。
- H_padded = H_in + pad_top + pad_bottom必须能被block_size整除。
- W_padded = W_in + pad_left + pad_right必须能被block_size整除。
- block_size为编译期常量(算子属性),非运行时tensor输入。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式 | test_geir_space_to_batch | 通过算子IR构图方式调用SpaceToBatch算子。 |