@@ -30,81 +30,28 @@ public Tensor this[params Slice[] slices]
3030 {
3131 get
3232 {
33- var begin = new List < int > ( ) ;
34- var end = new List < int > ( ) ;
35- var strides = new List < int > ( ) ;
33+ var args = tensor_util . ParseSlices ( slices ) ;
3634
37- var index = 0 ;
38- var ( new_axis_mask , shrink_axis_mask ) = ( 0 , 0 ) ;
39- var ( begin_mask , end_mask ) = ( 0 , 0 ) ;
40- var ellipsis_mask = 0 ;
41-
42- foreach ( var s in slices )
43- {
44- if ( s . IsNewAxis )
45- {
46- begin . Add ( 0 ) ;
47- end . Add ( 0 ) ;
48- strides . Add ( 1 ) ;
49- new_axis_mask |= ( 1 << index ) ;
50- }
51- else if ( s . IsEllipsis )
52- {
53- begin . Add ( 0 ) ;
54- end . Add ( 0 ) ;
55- strides . Add ( 1 ) ;
56- ellipsis_mask |= ( 1 << index ) ;
57- }
58- else
59- {
60- if ( s . Start . HasValue )
61- {
62- begin . Add ( s . Start . Value ) ;
63- }
64- else
65- {
66- begin . Add ( 0 ) ;
67- begin_mask |= ( 1 << index ) ;
68- }
69-
70- if ( s . Stop . HasValue )
71- {
72- end . Add ( s . Stop . Value ) ;
73- }
74- else
75- {
76- end . Add ( 0 ) ;
77- end_mask |= ( 1 << index ) ;
78- }
79-
80- strides . Add ( s . Step ) ;
81- if ( s . IsIndex )
82- shrink_axis_mask |= ( 1 << index ) ;
83- }
84-
85- index += 1 ;
86- }
87-
88- return tf_with ( ops . name_scope ( null , "strided_slice" , new { begin , end , strides } ) , scope =>
35+ return tf_with ( ops . name_scope ( null , "strided_slice" , args ) , scope =>
8936 {
9037 string name = scope ;
91- if ( begin != null )
38+ if ( args . Begin != null )
9239 {
9340 var ( packed_begin , packed_end , packed_strides ) =
94- ( array_ops . stack ( begin . ToArray ( ) ) ,
95- array_ops . stack ( end . ToArray ( ) ) ,
96- array_ops . stack ( strides . ToArray ( ) ) ) ;
41+ ( array_ops . stack ( args . Begin ) ,
42+ array_ops . stack ( args . End ) ,
43+ array_ops . stack ( args . Strides ) ) ;
9744
9845 return gen_array_ops . strided_slice (
9946 this ,
10047 packed_begin ,
10148 packed_end ,
10249 packed_strides ,
103- begin_mask : begin_mask ,
104- end_mask : end_mask ,
105- shrink_axis_mask : shrink_axis_mask ,
106- new_axis_mask : new_axis_mask ,
107- ellipsis_mask : ellipsis_mask ,
50+ begin_mask : args . BeginMask ,
51+ end_mask : args . EndMask ,
52+ shrink_axis_mask : args . ShrinkAxisMask ,
53+ new_axis_mask : args . NewAxisMask ,
54+ ellipsis_mask : args . EllipsisMask ,
10855 name : name ) ;
10956 }
11057
0 commit comments