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