mindspore.ops.SpaceToDepth

class mindspore.ops.SpaceToDepth(block_size)[源代码]

将空间维度分块,增加Tensor深度。

输出Tensor的高度为 \(height / block\_size\)

输出Tensor的宽度为 \(weight / block\_size\)

输出Tensor的深度为 \(block\_size * block\_size * input\_depth\)

输入Tensor的高度和宽度必须可被 block_size 整除。格式为”NCHW”(batch_size,深度,高度,宽度)。

参数:
  • block_size (int) - 用于划分空间维度的子块的大小。必须>=2。

输入:
  • x (Tensor) - 四维Tensor。数据类型为Number。

输出:

四维Tensor,数据类型与 x 相同,shape: \((N, (C_{in} * \text{block_size} * 2), H_{in} / \text{block_size}, W_{in} / \text{block_size})\)

异常:
  • TypeError - block_size 不是int类型。

  • ValueError - block_size 小于2。

  • ValueError - x 的维度不为4。

支持平台:

Ascend GPU CPU

样例:

>>> x = Tensor(np.random.rand(1,3,2,2), mindspore.float32)
>>> block_size = 2
>>> space_to_depth = ops.SpaceToDepth(block_size)
>>> output = space_to_depth(x)
>>> print(output.shape)
(1, 12, 1, 1)