Add resize to change_3d_tensors_to_4d transformation
This PR adds resize to the change_3d_tensors_to_4d transformation. The implementation supports resize version 10 up to 19.
Version 10 only supports scales as an input, other than the input tensor.
Version 11 up to 19 additionally support the roi and sizes inputs. sizes and scales are mutually exclusive. The Problem is that different versions have a different understanding of how to mark an input as unused. As an example:
- Version 11 dictates: "If
sizesis needed, the user must setscalesto an empty tensor." - Version 13 dictates: "If
sizesis needed, the user can use an empty string as the name ofscalesin this operator’s input list."
I am thus checking if scales or sizes exist by checking if they are None or are empty. None is returned by model.get_initializer() if the input is an empty string in the input list.
After deliberation with @fpjentzsch we decided to disallow the use of the ROI input and the axes attribute for the Resize operator.
Thanks @klassen9 . Since this is also related to #150 I took the liberty to extend the testcase generation to add a opset 13 version of Resize where the scale input is an empty string, which triggers the bug in #150 , and added exceptions in the core functions to handle this properly.
Kind reminder: please ensure future PRs go through pre-commit.