MaxUnpool

MaxUnpool - 22

版本

  • 名称: MaxUnpool (GitHub)

  • : main

  • 起始版本: 22

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的算子已可用 **自版本 22 起**。

摘要

MaxUnpool 本质上计算 MaxPool 算子的部分逆运算。此算子的输入信息通常来自 MaxPool 算子的输出信息。第一个输入张量 X 是需要进行反池化的张量,通常是 MaxPool 的池化张量(第一个输出)。第二个输入张量 I 包含与第一个输入张量 X 中的元素相对应的(局部最大值)元素的索引。输入张量 I 通常是 MaxPool 算子的第二个输出。第三个(可选)输入是一个指定反池化操作输出尺寸的张量。

MaxUnpool 旨在执行 MaxPool 算子的“部分”逆运算。“部分”是因为 MaxPool 原始输入中所有非最大值在 MaxUnpool 算子的输出中都设置为零。对反池化操作的结果进行池化应该能得到反池化操作的原始输入。

MaxUnpool 可以为多个输入尺寸生成相同的输出尺寸,这使得反池化操作存在歧义。第三个输入参数 output_size 旨在消除操作的歧义,并生成已知/可预测尺寸的输出张量。

除了输入之外,MaxUnpool 还接受三个属性,即 kernel_shape、strides 和 pads,它们定义了精确的反池化操作。这些属性通常与反池化操作试图进行逆运算的对应池化操作具有相同的值。

属性

  • kernel_shape - INTS (必需)

    沿每个轴的核尺寸。

  • pads - INTS :

    沿每个空间轴起始和结束的填充,它可以取大于或等于 0 的任何值。该值表示添加到对应轴的起始和结束部分的像素数量。pads 格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是添加到轴 i 起始部分的像素数量,xi_end 是添加到轴 i 结束部分的像素数量。此属性不能与 auto_pad 属性同时使用。如果未指定,则沿每个空间轴的起始和结束的填充默认为 0。

  • strides - INTS :

    沿每个空间轴的步长。如果未指定,则沿每个空间轴的步长默认为 1。

输入

2 到 3 个输入。

  • X (异构) - **T1**

    需要进行反池化的输入数据张量。此张量通常是 MaxPool 算子的第一个输出。图像情况下的维度为 (N x C x H x W),其中 N 是批量大小,C 是通道数,H 和 W 是数据的高度和宽度。对于非图像情况,维度形式为 (N x C x D1 x D2 … Dn),其中 N 是批量大小。可选地,如果维度表示法生效,该操作预期输入数据张量带有维度表示 [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …]。

  • I (异构) - **T2**

    包含与第一个输入张量 X 中元素相对应的索引的输入数据张量。此张量通常是 MaxPool 算子的第二个输出。维度必须与输入张量 X 相同。索引是线性的,即假定行主序存储,将张量视为展平的 1 维张量计算得出。此外,线性索引不应考虑填充。因此索引中的值范围是 [0, N x C x D1 x … x Dn)。

  • output_shape (可选,异构) - **T2**

    可以显式设置输出的形状,这将导致自动生成填充值。如果指定了 'output_shape',则忽略 'pads' 值。

输出

  • output (异构) - **T1**

    包含反池化结果的输出数据张量。

类型约束

  • T1 支持 ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16) )

    约束输入和输出类型为浮点张量。

  • T2 支持 ( tensor(int64) )

    约束索引张量为 int64

MaxUnpool - 11

版本

  • 名称: MaxUnpool (GitHub)

  • : main

  • 起始版本: 11

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的算子已可用 **自版本 11 起**。

摘要

MaxUnpool 本质上计算 MaxPool 算子的部分逆运算。此算子的输入信息通常来自 MaxPool 算子的输出信息。第一个输入张量 X 是需要进行反池化的张量,通常是 MaxPool 的池化张量(第一个输出)。第二个输入张量 I 包含与第一个输入张量 X 中的元素相对应的(局部最大值)元素的索引。输入张量 I 通常是 MaxPool 算子的第二个输出。第三个(可选)输入是一个指定反池化操作输出尺寸的张量。

MaxUnpool 旨在执行 MaxPool 算子的“部分”逆运算。“部分”是因为 MaxPool 原始输入中所有非最大值在 MaxUnpool 算子的输出中都设置为零。对反池化操作的结果进行池化应该能得到反池化操作的原始输入。

MaxUnpool 可以为多个输入尺寸生成相同的输出尺寸,这使得反池化操作存在歧义。第三个输入参数 output_size 旨在消除操作的歧义,并生成已知/可预测尺寸的输出张量。

除了输入之外,MaxUnpool 还接受三个属性,即 kernel_shape、strides 和 pads,它们定义了精确的反池化操作。这些属性通常与反池化操作试图进行逆运算的对应池化操作具有相同的值。

属性

  • kernel_shape - INTS (必需)

    沿每个轴的核尺寸。

  • pads - INTS :

    沿每个空间轴起始和结束的填充,它可以取大于或等于 0 的任何值。该值表示添加到对应轴的起始和结束部分的像素数量。pads 格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是添加到轴 i 起始部分的像素数量,xi_end 是添加到轴 i 结束部分的像素数量。此属性不能与 auto_pad 属性同时使用。如果未指定,则沿每个空间轴的起始和结束的填充默认为 0。

  • strides - INTS :

    沿每个空间轴的步长。如果未指定,则沿每个空间轴的步长默认为 1。

输入

2 到 3 个输入。

  • X (异构) - **T1**

    需要进行反池化的输入数据张量。此张量通常是 MaxPool 算子的第一个输出。图像情况下的维度为 (N x C x H x W),其中 N 是批量大小,C 是通道数,H 和 W 是数据的高度和宽度。对于非图像情况,维度形式为 (N x C x D1 x D2 … Dn),其中 N 是批量大小。可选地,如果维度表示法生效,该操作预期输入数据张量带有维度表示 [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …]。

  • I (异构) - **T2**

    包含与第一个输入张量 X 中元素相对应的索引的输入数据张量。此张量通常是 MaxPool 算子的第二个输出。维度必须与输入张量 X 相同。索引是线性的,即假定行主序存储,将张量视为展平的 1 维张量计算得出。此外,线性索引不应考虑填充。因此索引中的值范围是 [0, N x C x D1 x … x Dn)。

  • output_shape (可选,异构) - **T2**

    可以显式设置输出的形状,这将导致自动生成填充值。如果指定了 'output_shape',则忽略 'pads' 值。

输出

  • output (异构) - **T1**

    包含反池化结果的输出数据张量。

类型约束

  • T1 支持 ( tensor(double), tensor(float), tensor(float16) )

    约束输入和输出类型为浮点张量。

  • T2 支持 ( tensor(int64) )

    约束索引张量为 int64

MaxUnpool - 9

版本

  • 名称: MaxUnpool (GitHub)

  • : main

  • 起始版本: 9

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的算子已可用 **自版本 9 起**。

摘要

MaxUnpool 本质上计算 MaxPool 算子的部分逆运算。此算子的输入信息通常来自 MaxPool 算子的输出信息。第一个输入张量 X 是需要进行反池化的张量,通常是 MaxPool 的池化张量(第一个输出)。第二个输入张量 I 包含与第一个输入张量 X 中的元素相对应的(局部最大值)元素的索引。输入张量 I 通常是 MaxPool 算子的第二个输出。第三个(可选)输入是一个指定反池化操作输出尺寸的张量。

MaxUnpool 旨在执行 MaxPool 算子的“部分”逆运算。“部分”是因为 MaxPool 原始输入中所有非最大值在 MaxUnpool 算子的输出中都设置为零。对反池化操作的结果进行池化应该能得到反池化操作的原始输入。

MaxUnpool 可以为多个输入尺寸生成相同的输出尺寸,这使得反池化操作存在歧义。第三个输入参数 output_size 旨在消除操作的歧义,并生成已知/可预测尺寸的输出张量。

除了输入之外,MaxUnpool 还接受三个属性,即 kernel_shape、strides 和 pads,它们定义了精确的反池化操作。这些属性通常与反池化操作试图进行逆运算的对应池化操作具有相同的值。

属性

  • kernel_shape - INTS (必需)

    沿每个轴的核尺寸。

  • pads - INTS :

    沿每个空间轴起始和结束的填充,它可以取大于或等于 0 的任何值。该值表示添加到对应轴的起始和结束部分的像素数量。pads 格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是添加到轴 i 起始部分的像素数量,xi_end 是添加到轴 i 结束部分的像素数量。此属性不能与 auto_pad 属性同时使用。如果未指定,则沿每个空间轴的起始和结束的填充默认为 0。

  • strides - INTS :

    沿每个空间轴的步长。

输入

2 到 3 个输入。

  • X (异构) - **T1**

    需要进行反池化的输入数据张量。此张量通常是 MaxPool 算子的第一个输出。图像情况下的维度为 (N x C x H x W),其中 N 是批量大小,C 是通道数,H 和 W 是数据的高度和宽度。对于非图像情况,维度形式为 (N x C x D1 x D2 … Dn),其中 N 是批量大小。可选地,如果维度表示法生效,该操作预期输入数据张量带有维度表示 [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …]。

  • I (异构) - **T2**

    包含与第一个输入张量 X 中元素相对应的索引的输入数据张量。此张量通常是 MaxPool 算子的第二个输出。维度必须与输入张量 X 相同。索引是线性的,即假定行主序存储,将张量视为展平的 1 维张量计算得出。此外,线性索引不应考虑填充。因此索引中的值范围是 [0, N x C x D1 x … x Dn)。

  • output_shape (可选,异构) - **T2**

    可以显式设置输出的形状,这将导致自动生成填充值。如果指定了 'output_shape',则忽略 'pads' 值。

输出

  • output (异构) - **T1**

    包含反池化结果的输出数据张量。

类型约束

  • T1 支持 ( tensor(double), tensor(float), tensor(float16) )

    约束输入和输出类型为浮点张量。

  • T2 支持 ( tensor(int64) )

    约束索引张量为 int64