Pad

Pad - 24

版本

  • 名称: Pad (GitHub)

  • : main

  • 起始版本24

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符已可用于版本 24 及以上

摘要

给定一个包含待填充数据(data)的张量,一个包含每个轴的起始和结束填充值(pads)的张量,(可选地)一个 mode,以及(可选地)constant_value,生成一个填充后的张量(output)。

支持的三种 mode(类似于 numpy.pad 支持的相应模式)如下:

  1. constant(默认)- 使用 constant_value 指定的给定常量值进行填充(默认为 0、空字符串或 False)

  2. reflect - 沿每个轴使用向量第一个和最后一个值的镜像反射进行填充

  3. edge - 使用数组的边缘值进行填充

  4. wrap - 环绕填充,如同数据张量形成一个环面

示例 1 (constant 模式)

在第二维的开头插入 0 填充。

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [
    [0.0, 0.0, 1.0, 1.2],
    [0.0, 0.0, 2.3, 3.4],
    [0.0, 0.0, 4.5, 5.7],
]

示例 2 (reflect 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [
    [1.0, 1.2, 1.0, 1.2],
    [2.3, 3.4, 2.3, 3.4],
    [4.5, 5.7, 4.5, 5.7],
]

示例 3 (edge 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [
    [1.0, 1.0, 1.0, 1.2],
    [2.3, 2.3, 2.3, 3.4],
    [4.5, 4.5, 4.5, 5.7],
]

示例 4 (wrap 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [2, 1, 1, 1]

mode = 'wrap'

output = [
    [3.4, 2.3, 3.4, 2.3],
    [5.7, 4.5, 5.7, 4.5],
    [1.2, 1.0, 1.2, 1.0],
    [3.4, 2.3, 3.4, 2.3],
    [5.7, 4.5, 5.7, 4.5],
    [1.2, 1.0, 1.2, 1.0],
]

属性

  • mode - 字符串 (默认为 'constant')

    支持的模式:constant(默认)、reflectedgewrap

输入

2 到 4 个输入。

  • data (异构) - T

    输入张量。

  • pads (异构) - 张量(int64)

    一个整数张量,表示在每个轴的开头和结尾添加或移除(如果为负)的填充元素数量。对于 2D 输入张量,它是像素的数量。pads 应该是一个形状为 [2 * num_axes] 的 1D 张量,其中 num_axes 指的是 axes 输入中的元素数量,如果未显式提供 axes,则指输入秩。pads 格式应为:[x1_begin, x2_begin, …, x1_end, x2_end,…],其中 xi_begin 是在轴 axes[i] 的开头添加的填充值数量,xi_end 是在轴 axes[i] 的结尾添加的填充值数量。

  • constant_value (可选,异构) - T

    (可选) 如果选择的模式是 constant,则使用的标量值(默认为 0、空字符串或 False)。

  • axes (可选,异构) - Tind

    一个 1D 张量,表示 pads 应用的轴。负值表示从后向前计算维度。接受的范围是 [-r, r-1],其中 r = rank(data)。如果轴重复,行为未定义。如果未提供,则假定所有轴([0, 1, ..., input_rank-1])。

输出

  • 输出 (异构) - T

    填充后的张量。

类型约束

  • T 包含 ( tensor(bfloat16), tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(float4e2m1), tensor(float8e4m3fn), tensor(float8e4m3fnuz), tensor(float8e5m2), tensor(float8e5m2fnuz), tensor(float8e8m0), tensor(int16), tensor(int32), tensor(int4), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint4), tensor(uint64), tensor(uint8) )

    将输入和输出类型限制为 IRv12 及以前的所有张量类型。

  • Tind 在 ( tensor(int32), tensor(int64) )

    将索引限制为整数类型

Pad - 23

版本

  • 名称: Pad (GitHub)

  • : main

  • 起始版本23

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符已可用于版本 23 及以上

摘要

给定一个包含待填充数据(data)的张量,一个包含每个轴的起始和结束填充值(pads)的张量,(可选地)一个 mode,以及(可选地)constant_value,生成一个填充后的张量(output)。

支持的三种 mode(类似于 numpy.pad 支持的相应模式)如下:

  1. constant(默认)- 使用 constant_value 指定的给定常量值进行填充(默认为 0、空字符串或 False)

  2. reflect - 沿每个轴使用向量第一个和最后一个值的镜像反射进行填充

  3. edge - 使用数组的边缘值进行填充

  4. wrap - 环绕填充,如同数据张量形成一个环面

示例 1 (constant 模式)

在第二维的开头插入 0 填充。

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [
    [0.0, 0.0, 1.0, 1.2],
    [0.0, 0.0, 2.3, 3.4],
    [0.0, 0.0, 4.5, 5.7],
]

示例 2 (reflect 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [
    [1.0, 1.2, 1.0, 1.2],
    [2.3, 3.4, 2.3, 3.4],
    [4.5, 5.7, 4.5, 5.7],
]

示例 3 (edge 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [
    [1.0, 1.0, 1.0, 1.2],
    [2.3, 2.3, 2.3, 3.4],
    [4.5, 4.5, 4.5, 5.7],
]

示例 4 (wrap 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [2, 1, 1, 1]

mode = 'wrap'

output = [
    [3.4, 2.3, 3.4, 2.3],
    [5.7, 4.5, 5.7, 4.5],
    [1.2, 1.0, 1.2, 1.0],
    [3.4, 2.3, 3.4, 2.3],
    [5.7, 4.5, 5.7, 4.5],
    [1.2, 1.0, 1.2, 1.0],
]

属性

  • mode - 字符串 (默认为 'constant')

    支持的模式:constant(默认)、reflectedgewrap

输入

2 到 4 个输入。

  • data (异构) - T

    输入张量。

  • pads (异构) - 张量(int64)

    一个整数张量,表示在每个轴的开头和结尾添加或移除(如果为负)的填充元素数量。对于 2D 输入张量,它是像素的数量。pads 应该是一个形状为 [2 * num_axes] 的 1D 张量,其中 num_axes 指的是 axes 输入中的元素数量,如果未显式提供 axes,则指输入秩。pads 格式应为:[x1_begin, x2_begin, …, x1_end, x2_end,…],其中 xi_begin 是在轴 axes[i] 的开头添加的填充值数量,xi_end 是在轴 axes[i] 的结尾添加的填充值数量。

  • constant_value (可选,异构) - T

    (可选) 如果选择的模式是 constant,则使用的标量值(默认为 0、空字符串或 False)。

  • axes (可选,异构) - Tind

    一个 1D 张量,表示 pads 应用的轴。负值表示从后向前计算维度。接受的范围是 [-r, r-1],其中 r = rank(data)。如果轴重复,行为未定义。如果未提供,则假定所有轴([0, 1, ..., input_rank-1])。

输出

  • 输出 (异构) - T

    填充后的张量。

类型约束

  • T 包含 ( tensor(bfloat16), tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(float4e2m1), tensor(float8e4m3fn), tensor(float8e4m3fnuz), tensor(float8e5m2), tensor(float8e5m2fnuz), tensor(int16), tensor(int32), tensor(int4), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint4), tensor(uint64), tensor(uint8) )

    将输入和输出类型限制为 IRv11 及以前的所有张量类型。

  • Tind 在 ( tensor(int32), tensor(int64) )

    将索引限制为整数类型

Pad - 21

版本

  • 名称: Pad (GitHub)

  • : main

  • since_version: 21

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符自 版本 21 起可用。

摘要

给定一个包含待填充数据(data)的张量,一个包含每个轴的起始和结束填充值(pads)的张量,(可选地)一个 mode,以及(可选地)constant_value,生成一个填充后的张量(output)。

支持的三种 mode(类似于 numpy.pad 支持的相应模式)如下:

  1. constant(默认)- 使用 constant_value 指定的给定常量值进行填充(默认为 0、空字符串或 False)

  2. reflect - 沿每个轴使用向量第一个和最后一个值的镜像反射进行填充

  3. edge - 使用数组的边缘值进行填充

  4. wrap - 环绕填充,如同数据张量形成一个环面

示例 1 (constant 模式)

在第二维的开头插入 0 填充。

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [
    [0.0, 0.0, 1.0, 1.2],
    [0.0, 0.0, 2.3, 3.4],
    [0.0, 0.0, 4.5, 5.7],
]

示例 2 (reflect 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [
    [1.0, 1.2, 1.0, 1.2],
    [2.3, 3.4, 2.3, 3.4],
    [4.5, 5.7, 4.5, 5.7],
]

示例 3 (edge 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [
    [1.0, 1.0, 1.0, 1.2],
    [2.3, 2.3, 2.3, 3.4],
    [4.5, 4.5, 4.5, 5.7],
]

示例 4 (wrap 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [2, 1, 1, 1]

mode = 'wrap'

output = [
    [3.4, 2.3, 3.4, 2.3],
    [5.7, 4.5, 5.7, 4.5],
    [1.2, 1.0, 1.2, 1.0],
    [3.4, 2.3, 3.4, 2.3],
    [5.7, 4.5, 5.7, 4.5],
    [1.2, 1.0, 1.2, 1.0],
]

属性

  • mode - 字符串 (默认为 'constant')

    支持的模式:constant(默认)、reflectedgewrap

输入

2 到 4 个输入。

  • data (异构) - T

    输入张量。

  • pads (异构) - 张量(int64)

    一个整数张量,表示在每个轴的开头和结尾添加或移除(如果为负)的填充元素数量。对于 2D 输入张量,它是像素的数量。pads 应该是一个形状为 [2 * num_axes] 的 1D 张量,其中 num_axes 指的是 axes 输入中的元素数量,如果未显式提供 axes,则指输入秩。pads 格式应为:[x1_begin, x2_begin, …, x1_end, x2_end,…],其中 xi_begin 是在轴 axes[i] 的开头添加的填充值数量,xi_end 是在轴 axes[i] 的结尾添加的填充值数量。

  • constant_value (可选,异构) - T

    (可选) 如果选择的模式是 constant,则使用的标量值(默认为 0、空字符串或 False)。

  • axes (可选,异构) - Tind

    一个 1D 张量,表示 pads 应用的轴。负值表示从后向前计算维度。接受的范围是 [-r, r-1],其中 r = rank(data)。如果轴重复,行为未定义。如果未提供,则假定所有轴([0, 1, ..., input_rank-1])。

输出

  • 输出 (异构) - T

    填充后的张量。

类型约束

  • T 包含 ( tensor(bfloat16), tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(float8e4m3fn), tensor(float8e4m3fnuz), tensor(float8e5m2), tensor(float8e5m2fnuz), tensor(int16), tensor(int32), tensor(int4), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint4), tensor(uint64), tensor(uint8) )

    将输入和输出类型限制为 IRv10 及以前的所有张量类型。

  • Tind 在 ( tensor(int32), tensor(int64) )

    将索引限制为整数类型

Pad - 19

版本

  • 名称: Pad (GitHub)

  • : main

  • since_version: 19

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符自 版本 19 起可用。

摘要

给定一个包含待填充数据(data)的张量,一个包含每个轴的起始和结束填充值(pads)的张量,(可选地)一个 mode,以及(可选地)constant_value,生成一个填充后的张量(output)。

支持的三种 mode(类似于 numpy.pad 支持的相应模式)如下:

  1. constant(默认)- 使用 constant_value 指定的给定常量值进行填充(默认为 0、空字符串或 False)

  2. reflect - 沿每个轴使用向量第一个和最后一个值的镜像反射进行填充

  3. edge - 使用数组的边缘值进行填充

  4. wrap - 环绕填充,如同数据张量形成一个环面

示例 1 (constant 模式)

在第二维的开头插入 0 填充。

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [
    [0.0, 0.0, 1.0, 1.2],
    [0.0, 0.0, 2.3, 3.4],
    [0.0, 0.0, 4.5, 5.7],
]

示例 2 (reflect 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [
    [1.0, 1.2, 1.0, 1.2],
    [2.3, 3.4, 2.3, 3.4],
    [4.5, 5.7, 4.5, 5.7],
]

示例 3 (edge 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [
    [1.0, 1.0, 1.0, 1.2],
    [2.3, 2.3, 2.3, 3.4],
    [4.5, 4.5, 4.5, 5.7],
]

示例 4 (wrap 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [2, 1, 1, 1]

mode = 'wrap'

output = [
    [3.4, 2.3, 3.4, 2.3],
    [5.7, 4.5, 5.7, 4.5],
    [1.2, 1.0, 1.2, 1.0],
    [3.4, 2.3, 3.4, 2.3],
    [5.7, 4.5, 5.7, 4.5],
    [1.2, 1.0, 1.2, 1.0],
]

属性

  • mode - 字符串 (默认为 'constant')

    支持的模式:constant(默认)、reflectedgewrap

输入

2 到 4 个输入。

  • data (异构) - T

    输入张量。

  • pads (异构) - 张量(int64)

    一个整数张量,表示在每个轴的开头和结尾添加或移除(如果为负)的填充元素数量。对于 2D 输入张量,它是像素的数量。pads 应该是一个形状为 [2 * num_axes] 的 1D 张量,其中 num_axes 指的是 axes 输入中的元素数量,如果未显式提供 axes,则指输入秩。pads 格式应为:[x1_begin, x2_begin, …, x1_end, x2_end,…],其中 xi_begin 是在轴 axes[i] 的开头添加的填充值数量,xi_end 是在轴 axes[i] 的结尾添加的填充值数量。

  • constant_value (可选,异构) - T

    (可选) 如果选择的模式是 constant,则使用的标量值(默认为 0、空字符串或 False)。

  • axes (可选,异构) - Tind

    一个 1D 张量,表示 pads 应用的轴。负值表示从后向前计算维度。接受的范围是 [-r, r-1],其中 r = rank(data)。如果轴重复,行为未定义。如果未提供,则假定所有轴([0, 1, ..., input_rank-1])。

输出

  • 输出 (异构) - T

    填充后的张量。

类型约束

  • 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) )

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

  • Tind 在 ( tensor(int32), tensor(int64) )

    将索引限制为整数类型

Pad - 18

版本

  • 名称: Pad (GitHub)

  • : main

  • 起始版本: 18

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符自版本 18 起可用

摘要

给定一个包含待填充数据(data)的张量,一个包含每个轴的起始和结束填充值(pads)的张量,(可选地)一个 mode,以及(可选地)constant_value,生成一个填充后的张量(output)。

支持的三种 mode(类似于 numpy.pad 支持的相应模式)如下:

  1. constant(默认)- 使用 constant_value 指定的给定常量值进行填充(默认为 0、空字符串或 False)

  2. reflect - 沿每个轴使用向量第一个和最后一个值的镜像反射进行填充

  3. edge - 使用数组的边缘值进行填充

示例 1 (constant 模式)

在第二维的开头插入 0 填充。

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [
    [0.0, 0.0, 1.0, 1.2],
    [0.0, 0.0, 2.3, 3.4],
    [0.0, 0.0, 4.5, 5.7],
]

示例 2 (reflect 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [
    [1.0, 1.2, 1.0, 1.2],
    [2.3, 3.4, 2.3, 3.4],
    [4.5, 5.7, 4.5, 5.7],
]

示例 3 (edge 模式)

data = [
    [1.0, 1.2],
    [2.3, 3.4],
    [4.5, 5.7],
]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [
    [1.0, 1.0, 1.0, 1.2],
    [2.3, 2.3, 2.3, 3.4],
    [4.5, 4.5, 4.5, 5.7],
]

属性

  • mode - 字符串 (默认为 'constant')

    支持的模式:constant(默认)、reflectedge

输入

2 到 4 个输入。

  • data (异构) - T

    输入张量。

  • pads (异构) - 张量(int64)

    一个整数张量,表示在每个轴的开头和结尾添加或移除(如果为负)的填充元素数量。对于 2D 输入张量,它是像素的数量。pads 应该是一个形状为 [2 * num_axes] 的 1D 张量,其中 num_axes 指的是 axes 输入中的元素数量,如果未显式提供 axes,则指输入秩。pads 格式应为:[x1_begin, x2_begin, …, x1_end, x2_end,…],其中 xi_begin 是在轴 axes[i] 的开头添加的填充值数量,xi_end 是在轴 axes[i] 的结尾添加的填充值数量。

  • constant_value (可选,异构) - T

    (可选) 如果选择的模式是 constant,则使用的标量值(默认为 0、空字符串或 False)。

  • axes (可选,异构) - Tind

    一个 1D 张量,表示 pads 应用的轴。负值表示从后向前计算维度。接受的范围是 [-r, r-1],其中 r = rank(data)。如果轴重复,行为未定义。如果未提供,则假定所有轴([0, 1, ..., input_rank-1])。

输出

  • 输出 (异构) - T

    填充后的张量。

类型约束

  • 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) )

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

  • Tind 在 ( tensor(int32), tensor(int64) )

    将索引限制为整数类型

Pad - 13

版本

  • 名称: Pad (GitHub)

  • : main

  • 起始版本: 13

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

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

摘要

给定一个包含待填充数据(data)的张量,一个包含每个轴的起始和结束填充值(pads)的张量,(可选地)一个 mode,以及(可选地)constant_value,生成一个填充后的张量(output)。

支持的三种 mode(类似于 numpy.pad 支持的相应模式)如下:

  1. constant(默认)- 使用 constant_value 指定的给定常量值进行填充(默认为 0、空字符串或 False)

  2. reflect - 沿每个轴使用向量第一个和最后一个值的镜像反射进行填充

  3. edge - 使用数组的边缘值进行填充

示例 1 (constant 模式):在第二维的开头插入 0 填充。

data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [ [0.0, 0.0, 1.0, 1.2], [0.0, 0.0, 2.3, 3.4], [0.0, 0.0, 4.5, 5.7], ]

示例 2 (reflect 模式):data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [ [1.0, 1.2, 1.0, 1.2], [2.3, 3.4, 2.3, 3.4], [4.5, 5.7, 4.5, 5.7], ]

示例 3 (edge 模式):data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [ [1.0, 1.0, 1.0, 1.2], [2.3, 2.3, 2.3, 3.4], [4.5, 4.5, 4.5, 5.7], ]

属性

  • mode - 字符串 (默认为 'constant')

    支持的模式:constant(默认)、reflectedge

输入

2 到 3 个输入之间。

  • data (异构) - T

    输入张量。

  • pads (异构) - 张量(int64)

    一个整数张量,表示在每个轴的开头和结尾添加或移除(如果为负)的填充元素数量。对于 2D 输入张量,它是像素的数量。pads 应该是一个形状为 [2 * input_rank] 的 1D 张量。pads 格式应为:[x1_begin, x2_begin,…,x1_end, x2_end,…],其中 xi_begin 是在轴 i 的开头添加的填充值数量,xi_end 是在轴 i 的结尾添加的填充值数量。

  • constant_value (可选,异构) - T

    (可选) 如果选择的模式是 constant,则使用的标量值(默认为 0、空字符串或 False)。

输出

  • 输出 (异构) - T

    填充后的张量。

类型约束

  • 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) )

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

Pad - 11

版本

  • 名称: Pad (GitHub)

  • : main

  • 起始版本: 11

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

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

摘要

给定一个包含待填充数据(data)的张量,一个包含每个轴的起始和结束填充值(pads)的张量,(可选地)一个 mode,以及(可选地)constant_value,生成一个填充后的张量(output)。

支持的三种 mode(类似于 numpy.pad 支持的相应模式)如下:

  1. constant(默认)- 使用 constant_value 指定的给定常量值进行填充(默认为 0)

  2. reflect - 沿每个轴使用向量第一个和最后一个值的镜像反射进行填充

  3. edge - 使用数组的边缘值进行填充

示例 1 (constant 模式):在第二维的开头插入 0 填充。

data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'constant'

constant_value = 0.0

output = [ [0.0, 0.0, 1.0, 1.2], [0.0, 0.0, 2.3, 3.4], [0.0, 0.0, 4.5, 5.7], ]

示例 2 (reflect 模式):data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'reflect'

output = [ [1.0, 1.2, 1.0, 1.2], [2.3, 3.4, 2.3, 3.4], [4.5, 5.7, 4.5, 5.7], ]

示例 3 (edge 模式):data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ]

pads = [0, 2, 0, 0]

mode = 'edge'

output = [ [1.0, 1.0, 1.0, 1.2], [2.3, 2.3, 2.3, 3.4], [4.5, 4.5, 4.5, 5.7], ]

属性

  • mode - 字符串 (默认为 'constant')

    支持的模式:constant(默认)、reflectedge

输入

2 到 3 个输入之间。

  • data (异构) - T

    输入张量。

  • pads (异构) - 张量(int64)

    一个整数张量,表示在每个轴的开头和结尾添加或移除(如果为负)的填充元素数量。对于 2D 输入张量,它是像素的数量。pads 应该是一个形状为 [2 * input_rank] 的 1D 张量。pads 格式应为:[x1_begin, x2_begin,…,x1_end, x2_end,…],其中 xi_begin 是在轴 i 的开头添加的填充值数量,xi_end 是在轴 i 的结尾添加的填充值数量。

  • constant_value (可选,异构) - T

    (可选) 如果选择的模式是 constant,则使用的标量值(默认为 0)。

输出

  • 输出 (异构) - T

    填充后的张量。

类型约束

  • T 包含 ( tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) )

    将输入和输出限制为仅数值类型。

Pad - 2

版本

  • 名称: Pad (GitHub)

  • : main

  • since_version: 2

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此操作符版本自 版本 2 起可用。

摘要

给定 data 张量、填充、模式和值。示例:在第二维的开头插入 0 填充。data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ] pads = [0, 2, 0, 0] output = [ [ [0.0, 0.0, 1.0, 1.2], [0.0, 0.0, 2.3, 3.4], [0.0, 0.0, 4.5, 5.7], ], ]

属性

  • mode - 字符串 (默认为 'constant')

    三种模式:constant(默认)、reflect、edge

  • pads - 整数 (必填)

    一个整数列表,表示在每个轴的开头和结尾添加或移除(如果为负)的填充元素数量。对于 2D 输入,它是像素的数量。pads 的秩应为输入秩的两倍。pads 格式应为 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是在轴 i 的开头添加的像素数量,xi_end 是在轴 i 的结尾添加的像素数量。

  • value - 浮点数 (默认为 '0.0')

    一个浮点数,表示要填充的值。

输入

  • data (异构) - T

    输入张量。

输出

  • 输出 (异构) - T

    填充后的张量。

类型约束

  • T 包含 ( tensor(double), tensor(float), tensor(float16) )

    将输入和输出类型限制为浮点张量。

Pad - 1

版本

  • 名称: Pad (GitHub)

  • : main

  • 起始版本: 1

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: False

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

摘要

给定 data 张量、填充、模式和值。示例:在第二维的开头插入 0 填充。data = [ [1.0, 1.2], [2.3, 3.4], [4.5, 5.7], ] paddings = [0, 0, 2, 0] output = [ [ [0.0, 0.0, 1.0, 1.2], [0.0, 0.0, 2.3, 3.4], [0.0, 0.0, 4.5, 5.7], ], ]

属性

  • mode - 字符串 (默认为 'constant')

    三种模式:constant(默认)、reflect、edge

  • paddings - 整数 (必填)

    一个整数列表,表示在每个轴的开头和结尾的填充元素数量,对于 2D 输入,它是像素的数量。paddings 的秩应为输入秩的两倍。paddings 格式应为 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是在轴 i 的开头添加的像素数量,xi_end 是在轴 i 的结尾添加的像素数量。

  • value - 浮点数 (默认为 '0.0')

    一个浮点数,表示要填充的值,默认为 0

输入

  • data (异构) - T

    输入张量。

输出

  • 输出 (异构) - T

    填充后的张量。

类型约束

  • T 包含 ( tensor(double), tensor(float), tensor(float16) )

    将输入和输出类型限制为浮点张量。