1. 10 Nov, 2022 2 commits
    • Ted Themistokleous's avatar
      Update src/onnx/parse_if.cpp · 6f86d89d
      Ted Themistokleous authored
      
      
      fix comment for sub graph throw
      Co-authored-by: default avatarkahmed10 <15948690+kahmed10@users.noreply.github.com>
      6f86d89d
    • Ted Themistokleous's avatar
      Simplify parse_if to remove literal and broadcasting for empty branches · 62c746eb
      Ted Themistokleous authored
      Just grab the last output from the non empty branch and use the identity
      operator to get the proper shape for the output branch. In the case of
      an empty branch (empty tensor, of some type) this tends to mean "Do nothing"
      so we're folding the output of the other flow branch here, and thus if somehow,
      we do reach this at eval, should throw an error signalling either one of two things
      
      1. Onnx model is invalid
      2. The model has run into an error condition with its control flow.
      
      Since IF is an odd operator that can adjust axes, and other operators in a data driven
      fashion, this would serve as a check at compile and or/runtime.
      62c746eb
  2. 04 Nov, 2022 2 commits
  3. 02 Nov, 2022 1 commit
    • Ted Themistokleous's avatar
      Change Unsqueeze to squeeze to parse_if for trailing dimensions · b5d1db2e
      Ted Themistokleous authored
      Default to smaller dimension with trailing 1 case instead of unsqueezing to
      the larger dimension.
      
      More analysis on other networks concludes that when putting in two operands to
      and IF block, the output should take the smaller of the shapes instead of the larger
      
      Modified tests in onnx_test.cpp to parse to the correct output as well.
      b5d1db2e
  4. 01 Nov, 2022 1 commit
  5. 28 Oct, 2022 2 commits
  6. 27 Oct, 2022 1 commit
  7. 26 Oct, 2022 1 commit
    • Ted Themistokleous's avatar
      Fix for parse_split to handle in newer split op · 139f1ddd
      Ted Themistokleous authored
      Newer split moves the split attribute to an input. In this case we check the
      number of input args then.
      
      This changes allows us to move the accumulte check to outside each conditional branch
      Added more debug on this as well to show more details on this failure mode.
      
      Adds an additional test case using a generated split-13 operator styled
      test.
      139f1ddd
  8. 21 Oct, 2022 1 commit
    • Ted Themistokleous's avatar
      Fix parse_if to handle multi output constant branches · 2ae4c715
      Ted Themistokleous authored
      - Initial fix to handle scalars on input for empty constant values
      - Using scalar, multibroadcast, contiguous
      - Fixed appropriate unit tests for simple single output constants
      - Added unit tests for multi if outputs.
      
      - TODO - multibroadcast to handle scalar so we don't use scalar
      2ae4c715
  9. 18 Oct, 2022 2 commits
    • Ted Themistokleous's avatar
      Remove the use of add_outline and use literal instead · fad4da8a
      Ted Themistokleous authored
      outline seems to be bugged, and going to be depreciated, thus switching to
      creating a new literal with the proper shape for the empty output branch.
      fad4da8a
    • Ted Themistokleous's avatar
      PR comments from Paul · cd9560ed
      Ted Themistokleous authored
      -make all_but_last_dims_equal func instead of lambda
      -rename dim_delta -> rank_delta
      -make unsqueeze_last_op func instead of lambda
      -Handle multi output cases of changing output instructions
      -capture shape at each output shape at start of loop via .at() operator
      -replace instances of && with and
      cd9560ed
  10. 17 Oct, 2022 1 commit
    • Ted Themistokleous's avatar
      More review changes/fixes · d8ee02b9
      Ted Themistokleous authored
      - Handle checks for each IF output
      - add const to inputs of all_but_last_dims_equal
      - add std::equal instead of using equal
      - Use .back() for vectors in getting last value
      - Use input().front() instead of prev(prev()) when replacing the last value.
      d8ee02b9
  11. 15 Oct, 2022 1 commit
  12. 14 Oct, 2022 5 commits
  13. 13 Oct, 2022 4 commits
  14. 12 Oct, 2022 2 commits
  15. 08 Oct, 2022 1 commit
    • Ted Themistokleous's avatar
      Got model past if sequence but failing unit tests still · ea2d51bf
      Ted Themistokleous authored
      - Gets past to the split section of the resnext model
      - adding outline seems to solve if issues but verify calls broken
      - Referencing wrong element now instead of output of correct if block?
      - Need to determine proper output through verify tests.
      - Modified protobuf to handle case of extra 1 to "vectorize" scalar
      - Modified verify/tests to get things to "work", may need to be revised further.
      ea2d51bf
  16. 07 Oct, 2022 1 commit
    • Ted Themistokleous's avatar
      Get empty shapes working for parse_IF operator · abd3d63e
      Ted Themistokleous authored
      - Update if_then/else_empty test protobuff and cases
      - Need to update rand() vector used
      - Make y empty instead of x for if_else_empty_test.onnx
      - Regenerate protobufs with updates
      - Add changes to handle empty/scalar input branch size to if operator.
      - Add case where if both branches empty throw an error.
      - Update verify tests with gold vectors and new shapes for empty input vec
        which we handle like a scalar before broadcasting
      abd3d63e
  17. 04 Oct, 2022 10 commits
  18. 26 Sep, 2022 1 commit
    • Charlie Lin's avatar
      Rewrite ONNX parse batch norm (#1362) · c00f8202
      Charlie Lin authored
      Rewrites the BatchNormalization ONNX operator into other MIGX operators
      - Added handling of 1D input tensor case (edge case in ONNX spec)
      Removes the spatial and per_activation functionality (not in the ONNX spec)
      - Did not remove the batch_norm_inference related code as the TensorFlow parser still uses it
      - Can remove that code when the TF version is updated
      c00f8202
  19. 06 Sep, 2022 1 commit