DepthToSpace

DepthToSpace - 13

版本

  • 名称: DepthToSpace (GitHub)

  • : main

  • 自版本: 13

  • 函数: False

  • 支持级别: 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] 的块。

  • mode - STRING (默认值为 'DCR')

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

输入

  • input (异构) - T

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

输出

  • output (异构) - T

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

类型约束

  • T in ( 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

  • 自版本: 11

  • 函数: False

  • 支持级别: 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] 的块。

  • mode - STRING (默认值为 'DCR')

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

输入

  • input (异构) - T

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

输出

  • output (异构) - 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

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的运算符已从版本 1 开始可用

摘要

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

属性

  • blocksize - INT (必填)

    移动 [blocksize, blocksize] 的块。

输入

  • input (异构) - T

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

输出

  • output (异构) - 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) )

    将输入和输出类型约束为所有张量类型。