深度到空间

DepthToSpace - 13

版本

  • 名称: DepthToSpace (GitHub)

  • 域名: main

  • since_version: 13

  • 函数: False

  • support_level: SupportType.COMMON

  • 形状推断: True

此版本的运算符自版本13起可用。

摘要

DepthToSpace 将数据从深度维度重新排列(置换)为空间数据块。 这是 SpaceToDepth 的逆变换。更具体地说,此操作输出输入张量的副本,其中深度维度的值被移动到高度和宽度维度的空间块中。默认情况下,mode = DCR。 在 DCR 模式下,输入张量中沿深度维度的元素按以下顺序重新排列:深度、列,然后是行。输出 y 从输入 x 计算如下:

b, c, h, w = x.shape
tmp = np.reshape(x, [b, blocksize, blocksize, c // (blocksize**2), h, w])
tmp = np.transpose(tmp, [0, 3, 4, 1, 5, 2])
y = np.reshape(tmp, [b, c // (blocksize**2), h * blocksize, w * blocksize])

在CRD模式下,输入张量沿深度维度的元素按以下顺序重新排列:列、行和深度。输出y从输入x计算如下:

b, c, h, w = x.shape
tmp = np.reshape(x, [b, c // (blocksize ** 2), blocksize, blocksize, h, w])
tmp = np.transpose(tmp, [0, 1, 4, 2, 5, 3])
y = np.reshape(tmp, [b, c // (blocksize ** 2), h * blocksize, w * blocksize])

属性

  • blocksize - INT (必填) :

    移动大小为 [blocksize, blocksize] 的块。

  • 模式 - 字符串 (默认是 'DCR'):

    DCR(默认)用于深度-列-行顺序重新排列。使用CRD用于列-行-深度顺序。

输入

  • 输入 (异构) - T:

    输入张量为[N,C,H,W],其中N是批次轴,C是通道或深度,H是高度,W是宽度。

输出

  • 输出 (异构) - T:

    输出张量的形状为 [N, C/(blocksize * blocksize), H * blocksize, W * blocksize]。

类型约束

  • T 在 ( tensor(bfloat16), tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) ):

    将输入和输出类型限制为所有张量类型。

DepthToSpace - 11

版本

  • 名称: DepthToSpace (GitHub)

  • 域名: main

  • since_version: 11

  • 函数: False

  • support_level: SupportType.COMMON

  • 形状推断: True

此版本的运算符自版本11起可用。

摘要

DepthToSpace 将数据从深度维度重新排列(置换)为空间数据块。 这是 SpaceToDepth 的逆变换。更具体地说,此操作输出输入张量的副本,其中深度维度的值被移动到高度和宽度维度的空间块中。默认情况下,mode = DCR。 在 DCR 模式下,输入张量中沿深度维度的元素按以下顺序重新排列:深度、列,然后是行。输出 y 从输入 x 计算如下:

b, c, h, w = x.shape

tmp = np.reshape(x, [b, blocksize, blocksize, c // (blocksize**2), h, w])

tmp = np.transpose(tmp, [0, 3, 4, 1, 5, 2])

y = np.reshape(tmp, [b, c // (blocksize**2), h * blocksize, w * blocksize])

在CRD模式下,输入张量沿深度维度的元素按以下顺序重新排列:列、行和深度。输出y从输入x计算如下:

b, c, h, w = x.shape

tmp = np.reshape(x, [b, c // (blocksize ** 2), blocksize, blocksize, h, w])

tmp = np.transpose(tmp, [0, 1, 4, 2, 5, 3])

y = np.reshape(tmp, [b, c // (blocksize ** 2), h * blocksize, w * blocksize])

属性

  • blocksize - INT (必填) :

    移动大小为 [blocksize, blocksize] 的块。

  • 模式 - 字符串 (默认是 'DCR'):

    DCR(默认)用于深度-列-行顺序重新排列。使用CRD用于列-行-深度顺序。

输入

  • 输入 (异构) - T:

    输入张量为[N,C,H,W],其中N是批次轴,C是通道或深度,H是高度,W是宽度。

输出

  • 输出 (异构) - T:

    输出张量的形状为 [N, C/(blocksize * blocksize), H * blocksize, W * blocksize]。

类型约束

  • T 在 ( tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) ):

    将输入和输出类型限制为所有张量类型。

DepthToSpace - 1

版本

  • 名称: DepthToSpace (GitHub)

  • 域名: main

  • since_version: 1

  • 函数: False

  • support_level: SupportType.COMMON

  • 形状推断: True

此版本的运算符自版本1起可用。

总结

DepthToSpace 将深度数据重新排列(置换)为空间数据块。 这是 SpaceToDepth 的逆变换。更具体地说,此操作输出输入张量的副本,其中深度维度的值被移动到高度和宽度维度的空间块中。

属性

  • blocksize - INT (必填) :

    移动大小为 [blocksize, blocksize] 的块。

输入

  • 输入 (异构) - T:

    输入张量为[N,C,H,W],其中N是批次轴,C是通道或深度,H是高度,W是宽度。

输出

  • 输出 (异构) - T:

    输出张量的形状为 [N, C/(blocksize * blocksize), H * blocksize, W * blocksize]。

类型约束

  • T 在 ( tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) ):

    将输入和输出类型限制为所有张量类型。