mindspore.ops.DepthToSpace

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

将深度数据重新排列到空间维度中。

这是SpaceToDepth的反向操作。

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

输出Tensor的 height 维度为 \(height * block\_size\)

输出Tensor的 weight 维度为 \(weight * block\_size\)

输入Tensor的深度必须可被 block_size * block_size 整除。数据格式为"NCHW"。

参数:
  • block_size (int) - 用于划分深度数据的块大小。其值必须>=2。

输入:
  • x (Tensor) - 输入Tensor。它必须为四维,其shape为 \((N, C_{in}, H_{in}, W_{in})\) ,数据类型为数值型。

输出:

Tensor,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 的shape长度不等于4。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> x = Tensor(np.random.rand(1, 12, 1, 1), mindspore.float32)
>>> block_size = 2
>>> depth_to_space = ops.DepthToSpace(block_size)
>>> output = depth_to_space(x)
>>> print(output.shape)
(1, 3, 2, 2)