@@ -926,7 +926,7 @@ def expanddims_op7(ctx, node, name, args):
926
926
927
927
def stridedslice_op (ctx , node , name , args ):
928
928
# for now we implement common cases. Things like strides!=1 are not mappable to onnx.
929
- not_supported_attr = ["ellipsis_mask" , " new_axis_mask" ]
929
+ not_supported_attr = ["new_axis_mask" ]
930
930
for attr_name in not_supported_attr :
931
931
attr = node .get_attr (attr_name )
932
932
if attr is not None and attr .i != 0 :
@@ -942,6 +942,8 @@ def stridedslice_op(ctx, node, name, args):
942
942
begin_mask = begin_mask .i if begin_mask is not None else 0
943
943
shrink_axis_mask = node .get_attr ("shrink_axis_mask" )
944
944
shrink_axis_mask = shrink_axis_mask .i if shrink_axis_mask is not None else 0
945
+ ellipsis_mask = node .get_attr ("ellipsis_mask" )
946
+ ellipsis_mask = ellipsis_mask .i if ellipsis_mask is not None else 0
945
947
new_begin = []
946
948
new_end = []
947
949
axes = []
@@ -953,6 +955,11 @@ def stridedslice_op(ctx, node, name, args):
953
955
raise ValueError ("StridedSlice: only strides=1 is supported" )
954
956
axes .append (idx )
955
957
958
+ if (ellipsis_mask >> idx ) & 1 :
959
+ new_begin .append (0 )
960
+ new_end .append (max_size )
961
+ continue
962
+
956
963
# an implicit condition is stride == 1 (checked in above)
957
964
if begin_item < 0 and end_item == 0 :
958
965
end_item = max_size
0 commit comments