1# StridedSlice
2
3
4## 概述
5
6根据步长和索引对输入张量进行切片提取。
7
8该算子对应的[NodeType](_n_n_rt_v20.md#nodetype)为NODE_TYPE_STRIDED_SLICE。
9
10输入:
11
12- x,n维tensor。
13
14- begin,1维tensor,begin的长度等于n,begin[i]指定第i维上截取的起点。
15
16- end,1维tensor,end的长度等于n,end[i]指定第i维上截取的终点。
17
18- strides,1维张量,strides的长度等于n,strides[i]指定第i维上截取的步长,允许存在负值。
19  > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
20  > 输入的张量有如下情况:begin, end 和 strides 的shape必须相同。 begin,end 是从0开始进行索引。 strides 的元素必须非零。
21
22输出:
23
24- output,堆叠运算后的tensor,数据类型与x相同。输出维度rank(x[0])+1维。
25
26**起始版本:** 3.2
27
28**相关模块:**[NNRt](_n_n_rt_v20.md)
29
30
31## 汇总
32
33
34### Public 属性
35
36| 名称 | 描述 |
37| -------- | -------- |
38| long [beginMask](#beginmask) | 表示切片的起始索引。 beginMask使用二进制编码方式对输入x的不同维度进行标志,beginMask的第i位设置为1则begin[i]参数对应的第i维度设置无效,表示该维度的起始索引从0开始。默认值为0。 |
39| long [endMask](#endmask) | 表示切片的结束索引。功能类似begin_mask。 endMask使用二进制编码方式对输入x的不同维度进行标志,第i位设置为1则end参数对应的该维度设置无效,表示该维度切分的结束索引到列表最后,即切分到尽可能大的维度。默认值为0。 |
40| long [ellipsisMask](#ellipsismask) | 一个整数,用于解除begin和end的限制。 不为0的维度不需要进行切片操作。 将ellipsisMask转成二进制表示,如果ellipsisMask的第i位为1,则对于第i维,从第一个元素开始,以strides[i]为步长,截取元素直到tensor边界。 |
41| long [newAxisMask](#newaxismask) | 用于新增维度。 newAxisMask使用二进制编码方式对输入x的不同维度进行标志,如果第i位出现1,则begin、end、stride对所有维度参数无效,并在第i位上增加一个大小为1的维度。 |
42| long [shrinkAxisMask](#shrinkaxismask) | 用于压缩指定维度。 将shrinkAxisMask转成二进制表示,如果shrinkAxisMask的第i位位1,则舍去第i维所有元素,第i维长度压缩至1。 |
43
44
45## 类成员变量说明
46
47
48### beginMask
49
50```
51long StridedSlice::beginMask
52```
53
54**描述**
55
56
57表示切片的起始索引。 beginMask使用二进制编码方式对输入x的不同维度进行标志,beginMask的第i位设置为1则begin[i]参数对应的第i维度设置无效,表示该维度的起始索引从0开始。默认值为0。
58
59
60### ellipsisMask
61
62```
63long StridedSlice::ellipsisMask
64```
65
66**描述**
67
68
69一个整数,用于解除begin和end的限制。 不为0的维度不需要进行切片操作。 将ellipsisMask转成二进制表示,如果ellipsisMask的第i位为1,则对于第i维,从第一个元素开始,以strides[i]为步长,截取元素直到tensor边界。
70
71
72### endMask
73
74```
75long StridedSlice::endMask
76```
77
78**描述**
79
80
81表示切片的结束索引。功能类似begin_mask。 endMask使用二进制编码方式对输入x的不同维度进行标志,第i位设置为1则end参数对应的该维度设置无效,表示该维度切分的结束索引到列表最后,即切分到尽可能大的维度。默认值为0。
82
83
84### newAxisMask
85
86```
87long StridedSlice::newAxisMask
88```
89
90**描述**
91
92
93用于新增维度。 newAxisMask使用二进制编码方式对输入x的不同维度进行标志,如果第i位出现1,则begin、end、stride对所有维度参数无效,并在第i位上增加一个大小为1的维度。
94
95
96### shrinkAxisMask
97
98```
99long StridedSlice::shrinkAxisMask
100```
101
102**描述**
103
104
105用于压缩指定维度。 将shrinkAxisMask转成二进制表示,如果shrinkAxisMask的第i位位1,则舍去第i维所有元素,第i维长度压缩至1。
106