Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatic accuracy compensation Expand, BatchNormalization, Gather #675

Merged
merged 4 commits into from
Jul 25, 2024

Conversation

PINTO0309
Copy link
Owner

@PINTO0309 PINTO0309 commented Jul 25, 2024

1. Content and background

  • Expand, BatchNormalization, Gather
    • Automatic accuracy compensation.
    • Added the ability to automatically compensate for accuracy degradation due to dimensional transposition errors.
  • AveragePool
    • Only very few edge cases are supported.
    • The dynamic tensor AveragePool is difficult to replace exactly with TensorFlow's AveragePooling.
      INFO: 39 / 1464
      INFO: onnx_op_type: AveragePool onnx_op_name: wa/xvector/block1/tdnnd1/cam_layer/AveragePool
      INFO:  input_name.1: wa/xvector/block1/tdnnd1/nonlinear2/relu/Relu_output_0 shape: [1, 128, 'unk__71'] dtype: float32
      INFO:  output_name.1: wa/xvector/block1/tdnnd1/cam_layer/AveragePool_output_0 shape: [1, 128, 'unk__77'] dtype: float32
      ERROR: The trace log is below.
      Traceback (most recent call last):
        File "/home/xxxxx/git/onnx2tf/onnx2tf/utils/common_functions.py", line 312, in print_wrapper_func
          result = func(*args, **kwargs)
        File "/home/xxxxx/git/onnx2tf/onnx2tf/utils/common_functions.py", line 385, in inverted_operation_enable_disable_wrapper_func
          result = func(*args, **kwargs)
        File "/home/xxxxx/git/onnx2tf/onnx2tf/utils/common_functions.py", line 55, in get_replacement_parameter_wrapper_func
          func(*args, **kwargs)
        File "/home/xxxxx/git/onnx2tf/onnx2tf/ops/AveragePool.py", line 171, in make_node
          output_spatial_shape = [
        File "/home/xxxxx/git/onnx2tf/onnx2tf/ops/AveragePool.py", line 172, in <listcomp>
          func((i + pb + pe - d * (k - 1) - 1) / s + 1)
      TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
      
      ERROR: input_onnx_file_path: ../cam++_vin.onnx
      ERROR: onnx_op_name: wa/xvector/block1/tdnnd1/cam_layer/AveragePool
      ERROR: Read this and deal with it. https://github.com/PINTO0309/onnx2tf#parameter-replacement
      ERROR: Alternatively, if the input OP has a dynamic dimension, use the -b or -ois option to rewrite it to a static shape and try again.
      ERROR: If the input OP of ONNX before conversion is NHWC or an irregular channel arrangement other than NCHW, use the -kt or -kat option.
      ERROR: Also, for models that include NonMaxSuppression in the post-processing, try the -onwdt option.
      

2. Summary of corrections

3. Before/After (If there is an operating log that can be used as a reference)

4. Issue number (only if there is a related issue)

@PINTO0309 PINTO0309 merged commit 1377d69 into main Jul 25, 2024
3 checks passed
@PINTO0309 PINTO0309 deleted the fix_undef_expand branch July 25, 2024 22:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant