From 074266bf73ed541c7bfd471229f73cc05411ebed Mon Sep 17 00:00:00 2001 From: Maxim Vafin Date: Tue, 9 Jun 2020 17:50:38 +0300 Subject: [PATCH] Fix onnx slice by clipping `ends` to int32 domain (#603) --- model-optimizer/extensions/middle/SliceConverter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model-optimizer/extensions/middle/SliceConverter.py b/model-optimizer/extensions/middle/SliceConverter.py index ba6e7e14e4c..73d1d5a2c3d 100644 --- a/model-optimizer/extensions/middle/SliceConverter.py +++ b/model-optimizer/extensions/middle/SliceConverter.py @@ -71,7 +71,7 @@ class ConvertSlice(MiddleReplacementPattern): # in ONNX the value for 'ends' is usually -1 which is translated to maximum possible value of int64. This # value must be converted to maximum of int32 because such big values do not fit into the int32 which is # supported by the StridedSlice layer - ends = int64_array([np.iinfo(np.int32).max if item > np.iinfo(np.int32).max else item for item in ends]) + ends = np.clip(ends, np.iinfo(np.int32).min, np.iinfo(np.int32).max) if node.is_in_port_connected(3): axes = node.in_port(3).data.get_value() if axes is None: