From 77cf51b13c265d3fffcb14d010512c3e50e98048 Mon Sep 17 00:00:00 2001 From: KeDengMS Date: Sun, 5 Jul 2020 23:37:36 -0700 Subject: [PATCH] Fix symbolic_shape_infer for Resize with roi (#4426) Should only apply roi when coordinate_transformation_mode == tf_crop_and_resize --- .../providers/nuphar/scripts/symbolic_shape_infer.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/onnxruntime/core/providers/nuphar/scripts/symbolic_shape_infer.py b/onnxruntime/core/providers/nuphar/scripts/symbolic_shape_infer.py index 0f8e1d2a11..cc33355e11 100755 --- a/onnxruntime/core/providers/nuphar/scripts/symbolic_shape_infer.py +++ b/onnxruntime/core/providers/nuphar/scripts/symbolic_shape_infer.py @@ -898,11 +898,15 @@ class SymbolicShapeInference: if sizes is not None: new_sympy_shape = [sympy.simplify(sympy.floor(s)) for s in sizes] self._update_computed_dims(new_sympy_shape) - elif roi is not None and scales is not None: + elif scales is not None: rank = len(scales) - assert len(roi) == 2*rank - roi_start = list(roi)[:rank] - roi_end = list(roi)[rank:] + if get_attribute(node, 'coordinate_transformation_mode') == 'tf_crop_and_resize': + assert len(roi) == 2*rank + roi_start = list(roi)[:rank] + roi_end = list(roi)[rank:] + else: + roi_start = [0]*rank + roi_end = [1]*rank scales = list(scales) new_sympy_shape = [sympy.simplify(sympy.floor(d * (end - start) * scale)) for d, start, end, scale in zip(input_sympy_shape, roi_start, roi_end, scales)] self._update_computed_dims(new_sympy_shape)