qonnx icon indicating copy to clipboard operation
qonnx copied to clipboard

Add resize to change_3d_tensors_to_4d transformation

Open klassen9 opened this issue 1 year ago • 1 comments

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 sizes is needed, the user must set scales to an empty tensor."
  • Version 13 dictates: "If sizes is needed, the user can use an empty string as the name of scales in 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.

klassen9 avatar Jul 06 '24 16:07 klassen9

After deliberation with @fpjentzsch we decided to disallow the use of the ROI input and the axes attribute for the Resize operator.

klassen9 avatar Jul 30 '24 15:07 klassen9

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.

maltanar avatar Dec 17 '24 11:12 maltanar