切片¶
切片 - 13¶
版本¶
名称: Slice (GitHub)
域名:
mainsince_version:
13函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本13起可用。
摘要¶
生成输入张量沿多个轴的切片。类似于numpy: https://numpy.org/doc/stable/user/basics.indexing.html?highlight=slice#slicing-and-striding
Slice 使用 starts, ends, axes 和 steps 输入来选择其输入 data 张量的子张量。
对于每个 i 在 [0, ... r-1] 中,必须计算有效的 starts[i]、ends[i] 和 steps[i],其中 r = rank(input),如下所示:
如果省略了axes,它们将被设置为[0, ..., r-1]。
如果省略了steps,它们将被设置为长度为len(starts)的[1, ..., 1]
有效值初始化为 start[i] = 0, ends[i] = dims[i],其中
dims 是 input 的维度,且 steps[i] = 1。
axes 的所有负元素通过加上 r 变为非负,其中
r =rank(input)。
starts[i] 和 ends[i] 中的所有负值都会加上 dims[axes[i]],
其中 dims 是 input 的维度。然后 start[axes[i]] 是调整后的
starts[i] 被限制在范围 [0, dims[axes[i]]] 内,用于正向步进,
以及 [0, dims[axes[i]]-1] 用于负向步进。
调整后的ends[i]的钳位取决于steps[i]的符号,并且必须适应复制0到dims[axes[i]]元素,因此对于正步进,ends[axes[i]]被钳位到[0, dims[axes[i]]],而对于负步进,它被钳位到[-1, dims[axes[i]]-1]。
最后,steps[axes[i]] = steps[i]。
对于切片到未知大小的维度末尾时,建议在向前切片时传入INT_MAX,在向后切片时传入‘INT_MIN’。
示例 1:
data = [
[1, 2, 3, 4],
[5, 6, 7, 8],
]
axes = [0, 1]
starts = [1, 0]
ends = [2, 3]
steps = [1, 2]
result = [
[5, 7],
]
示例 2:
data = [
[1, 2, 3, 4],
[5, 6, 7, 8],
]
starts = [0, 1]
ends = [-1, 1000]
result = [
[2, 3, 4],
]
输入¶
在3到5个输入之间。
data (异构) - T:
从中提取切片的数据张量。
starts (异构) - Tind:
1-D 张量,表示
axes中对应轴的起始索引ends (异质的) - Tind:
1-D 张量,表示
axes中对应轴的结束索引(不包含)axes(可选,异构) - Tind:
1-D 张量的轴,
starts和ends适用于这些轴。负值表示从后向前计算维度。可接受的范围是 [-r, r-1],其中 r = rank(data)。如果轴重复,则行为未定义。步骤 (可选, 异构) - Tind:
1-D 张量,表示
axes中对应轴的切片步长。负值表示向后切片。'steps' 不能为 0。默认为 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)) 中:将索引限制为整数类型
切片 - 11¶
版本¶
名称: Slice (GitHub)
域名:
mainsince_version:
11函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本11起可用。
摘要¶
生成输入张量沿多个轴的切片。类似于numpy:
https://numpy.org/doc/stable/reference/routines.indexing.html
切片使用starts、ends、axes和steps输入来指定每个轴的起始和结束维度以及步长,它使用这些信息来切片输入data张量。如果为任何起始或结束索引传递了负值,则表示该维度结束前的元素数量。如果传递给起始或结束的值大于n(该维度中的元素数量),则表示n。对于切片到未知大小的维度末尾,建议在向前切片时传递INT_MAX,在向后切片时传递'INT_MIN'。
如果为步长传递了负值,则表示向后切片。然而,步长值不能为0。
如果省略axes,则它们被设置为[0, ..., ndim-1]。
如果省略steps,则它们被设置为长度为len(starts)的[1, ..., 1]。
示例1:
data = [
[1, 2, 3, 4],
[5, 6, 7, 8],
]
axes = [0, 1]
starts = [1, 0]
ends = [2, 3]
steps = [1, 2]
result = [
[5, 7],
]
示例2:
data = [
[1, 2, 3, 4],
[5, 6, 7, 8],
]
starts = [0, 1]
ends = [-1, 1000]
result = [
[2, 3, 4],
]
输入¶
在3到5个输入之间。
data (异构) - T:
从中提取切片的数据张量。
starts (异构) - Tind:
1-D 张量,表示
axes中对应轴的起始索引ends (异质的) - Tind:
1-D 张量,表示
axes中对应轴的结束索引(不包含)axes(可选,异构) - Tind:
1-D 张量的轴,
starts和ends适用于这些轴。负值表示从后向前计算维度。可接受的范围是 [-r, r-1],其中 r = rank(data)。步骤 (可选, 异构) - Tind:
在
axes中对应轴的切片步长的1-D张量。负值表示向后切片。'steps'不能为0。默认为1。
输出¶
输出 (异构) - T:
切片数据张量。
类型约束¶
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)):将输入和输出类型限制为所有张量类型。
Tind 在 (
tensor(int32),tensor(int64)) 中:将索引限制为整数类型
切片 - 10¶
版本¶
名称: Slice (GitHub)
域名:
mainsince_version:
10函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本10起可用。
摘要¶
生成输入张量沿多个轴的切片。类似于numpy:
https://numpy.org/doc/stable/reference/routines.indexing.html
切片使用starts、ends、axes和steps输入来指定每个轴的开始和结束维度以及步长,它使用这些信息来切片输入data张量。如果为任何开始或结束索引传递了负值,它表示该维度结束前的元素数量。如果传递给开始或结束的值大于n(该维度中的元素数量),它表示n。对于切片到未知大小的维度末尾,建议传入INT_MAX。如果为步长传递了负值,它表示向后切片。如果省略axes,它们将被设置为[0, ..., ndim-1]。如果省略steps,它们将被设置为长度为len(starts)的[1, ..., 1]。
示例1:
data = [
[1, 2, 3, 4],
[5, 6, 7, 8],
]
axes = [0, 1]
starts = [1, 0]
ends = [2, 3]
steps = [1, 2]
result = [
[5, 7],
]
示例2:
data = [
[1, 2, 3, 4],
[5, 6, 7, 8],
]
starts = [0, 1]
ends = [-1, 1000]
result = [
[2, 3, 4],
]
输入¶
在3到5个输入之间。
data (异构) - T:
从中提取切片的数据张量。
starts (异构) - Tind:
1-D 张量,表示
axes中对应轴的起始索引ends (异质的) - Tind:
1-D 张量,表示
axes中对应轴的结束索引(不包含)axes(可选,异构) - Tind:
1-D 张量的轴,
starts和ends适用于这些轴。步骤 (可选, 异构) - Tind:
在
axes中对应轴的切片步长的1-D张量。默认为1。
输出¶
输出 (异构) - T:
切片数据张量。
类型约束¶
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)):将输入和输出类型限制为所有张量类型。
Tind 在 (
tensor(int32),tensor(int64)) 中:将索引限制为整数类型
切片 - 1¶
版本¶
名称: Slice (GitHub)
域名:
mainsince_version:
1函数:
Falsesupport_level:
SupportType.COMMON形状推断:
True
此版本的运算符自版本1起可用。
摘要¶
生成输入张量沿多个轴的切片。类似于numpy:
https://numpy.org/doc/stable/reference/routines.indexing.html
切片使用axes、starts和ends属性来指定每个轴的开始和结束维度,它使用这些信息来切片输入data张量。如果为任何开始或结束索引传递了负值,它表示该维度结束前的元素数量。如果传递给开始或结束的值大于n(该维度中的元素数量),它表示n。对于切片到未知大小的维度的末尾,建议传入INT_MAX。如果省略axes,则它们被设置为[0, ..., ndim-1]。
示例1:
data = [
[1, 2, 3, 4],
[5, 6, 7, 8],
]
axes = [0, 1]
starts = [1, 0]
ends = [2, 3]
result = [
[5, 6, 7],
]
示例2:
data = [
[1, 2, 3, 4],
[5, 6, 7, 8],
]
starts = [0, 1]
ends = [-1, 1000]
result = [
[2, 3, 4],
]
属性¶
axes - INTS :
应用
starts和ends的轴。它是可选的。如果不存在,将被视为[0, 1, …, len(starts) - 1]。ends - INTS(必填):
对应轴在`axes`中的结束索引(不包括)
starts - INTS(必填):
对应轴在
axes中的起始索引
输入¶
data (异构) - T:
从中提取切片的数据张量。
输出¶
输出 (异构) - T:
切片数据张量。
类型约束¶
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)):将输入和输出类型限制为所有张量类型。