Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Lu Fang
    @houseroad
    Hi everyone, thanks for joining the working group. :-)
    Lu Fang
    @houseroad
    Right now, our focus is to make sure all the operators in our specification covered by node test
    onnx/onnx#426, feel free to pick the task/operators from this list.
    Lu Fang
    @houseroad
    Hi guys, I would like to bring up the broadcasting issue again. Right now, we have ONNX broadcasting implemented as flag + axis, and many people prefer numpy style broadcasting. We definitely want to hear and discuss more about the broadcasting design.
    For more context: onnx/onnx#83
    James Newling
    @newling
    @houseroad maybe a separate room for broadcasting discussions ?
    James Newling
    @newling
    Hi everyone, I've been struggling to generate a test, could someone please give a walk-through of how this should be done (onnx/onnx#752)
    Lu Fang
    @houseroad
    Hi @newling , python onnx/backend/test/cmd_tools.py generate-data works for me
    James Newling
    @newling
    Great, I seem to be up and running now. Thanks @houseroad
    VincentLin78
    @VincentLin78
    Is there any ongoing thread to discuss about broadcasting ?
    VincentLin78
    @VincentLin78
    Some information for reference from our BE implementation on Android NN. ANN went on implicit way which didn't give any hint/flag in operation type. Currently, only ADD, SUB and MUL involve broadcasting. It specified input tensors have identical type and compatible dimensions(equal or one of them is 1).
    We would like to know how ONNX will do for this.
    Lu Fang
    @houseroad
    @VincentLin78 Thanks for the reference. After the discussion, people would like to switch to numpy style broadcasting, which folks are more familiar with and well documented.
    I will create a proposal about the concrete actions later.
    VincentLin78
    @VincentLin78
    Great. Thanks.
    VincentLin78
    @VincentLin78
    Is there an python API to run test cases on backend ? I didn't see one @ https://github.com/onnx/onnx/blob/master/docs/PythonAPIOverview.md.
    And these test cases are running on BE implementing ONNXIFI, right ?
    Lu Fang
    @houseroad
    Yes, you can run the backend test in Python, here is an example: https://github.com/onnx/onnx/blob/master/onnx/test/test_backend_test.py
    You need to implement your own ONNX backend in python, and the test cases are executed as python unittest.
    Here is a doc about how to implement your ONNX backend in python: https://github.com/onnx/onnx/blob/master/docs/ImplementingAnOnnxBackend.md
    VincentLin78
    @VincentLin78
    @houseroad Just now I'm aware of ONNX backend here is ML frameworks. We concerned more on the lower level backend which is the driver implementation of accelerator described here https://github.com/onnx/onnx/wiki/ONNX-Interface-for-Framework-Integration:-API-Proposal
    Lu Fang
    @houseroad
    @VincentLin78 We will add the test suite when onnx/onnx#551 is landed.
    VincentLin78
    @VincentLin78
    @houseroad Good news
    Anirudh
    @anirudhacharya
    I am writing tests for operators which currently do not have node/tests. Operators like RediceLogSum, InstanceNormalization and so on.. I have written the python code Python/Numpy code in https://github.com/onnx/onnx/tree/master/onnx/backend/test/case/node But I am not clear on how to generate the test protobuf files(input.pb, output.pb ) for a particular operator test. The instruvtions here( https://github.com/onnx/onnx/blob/master/docs/OnnxBackendTest.md) says we need to run the commandline tool. But from where will this tool pick the data to generate the protobuf files
    @all Also will the test framework also have tests for the experimental operators?
    Lu Fang
    @houseroad
    Hi @anirudhacharya , thanks for contributing the backend test. After writing the node test code, you can run python onnx/backend/test/cmd_tools.py generate-data to generate the input and output. It will be great if we can have backend test for experimental operators, since later it may be promoted to stable level.
    Anirudh
    @anirudhacharya
    @houseroad thanks, I have updated the PR asper comments, will add tests for more operators.
    KeDengMS
    @KeDengMS
    Another issue related to broadcasting rules for PReLU op onnx/onnx#889. I'd like to have all binary element-wise ops to follow the same numpy broadcasting rule.
    Lu Fang
    @houseroad
    @KeDengMS I have a PR onnx/onnx#907 in progress
    Which align ONNX broadcasting with Numpy
    Anirudh
    @anirudhacharya
    @houseroad @KeDengMS This PR is also changing the broadcast rules - https://github.com/onnx/onnx/pull/902/files#diff-11e5546ae75100fbca62f077a8b8a904 to align it with numpy standard of 1-element broadcast
    Anirudh
    @anirudhacharya
    Definition of the LRN operator needs to be clarified - https://github.com/onnx/onnx/blob/master/docs/Operators.md#LRN What is the local region?how is it determined
    KeDengMS
    @KeDengMS
    @anirudhacharya It seems PR onnx/onnx#902 is not entirely compliant to numpy, which supports arbitrary dim broadcasting from both sides.
    Anirudh
    @anirudhacharya
    I though this PR - onnx/onnx#907 was supposed to fully support numpy compliant broadcasting. And This PR - onnx/onnx#902 will just enable the 1-element broadcast from RHS to LHS?
    Also, correct me if I am wrong, but the 2nd PR is supposed to go into release v 1.2 and the first one is not. AM I right?
    Mike Tremaine
    @dalnew_twitter
    I had a quick question about ONNX op versioning... does anyone know given a model with a particular opset version how to determine the version of each op in that model?
    James Newling
    @newling
    Hi Mike, this is my understanding from onnx.in.proto. A ModelProto has a repeated list of OperatorSetIdProtos. Each OperatorSetIdProto has a domain and a version. A NodeProto (op) has a domain. So the domain of the NodeProto can be matched to at least one OperatorSetIdProto of the ModelProto, from which a version can be obtained (highest version with the Op if several OperatorSetIdProtos with the NodeProto's domain).
    Lu Fang
    @houseroad
    @newling thanks for the answer. In ONNX repo, we have defined opschema map: https://github.com/onnx/onnx/blob/677a05f16ce96d0a2ec1d9ab6fe52c2da5500c8b/onnx/defs/schema.h#L613
    James Newling
    @newling
    @houseroad actually it's still not clear to me. Can 2 entries in ModelProto's opset_import have the same domain?
    Lu Fang
    @houseroad
    @newling no, 2 opset_import with the same domain is not allowed.
    Danilo Pau
    @danilopau
    Hello, as we are implementing ONNX, we would like to get a precise definition of LpNormalization and associated unit test. Would be grateful for any help thank you
    Lu Fang
    @houseroad
    Yes, we are working on that. I think @ebarsoum will comment on the PR soon
    Emad Barsoum
    @ebarsoum
    Here the PR: onnx/onnx#1330
    The only problem in the PR is that there is no good solution for the eps.
    John
    @maxwillzq
    hi everyone, anybody meet same problem onnx/onnx#1302 ? I can't run through this and see some people have same problem. Thanks