openvinotoolkit / openvino

OpenVINO™ is an open-source toolkit for optimizing and deploying AI inference
https://docs.openvino.ai
Apache License 2.0
6.57k stars 2.12k forks source link

[Good First Issue]: Align behavior of ONNX Frontend function Relu-6, 13, 14 with original framework #20564

Open gkrivor opened 9 months ago

gkrivor commented 9 months ago

Context

Neural networks are graphs consisting of nodes called operators. Each operator corresponds to a mathematical function, usually described in framework's documentation or an AI standard, such as ONNX. OpenVINO ONNX Frontend is a component responsible for working with ONNX graphs and requires implementation of different ONNX operators in order to use ONNX models. This task requires alignment between OpenVINO ONNX Frontend and original framework implementations of Relu for next list of opsets: opset 6, opset 13, opset 14 Necessary help will be provided by ONNX Fronted team.

What needs to be done?

Operator details can be found in ONNX Operators More details can be found in ONNX Changelog: opset 6, opset 13, opset 14

  1. Function already has a common implementation in OpenVINO. First of all, you need to review a documentation and prepare a table with differences between versions. It could be, for instance, a missing property, extended/reduced coverage of existing property, etc...
  2. Copy existing implementation here to make it aligned with original framework (extend or reduce coverage of a common implementation). Copy of modified implementation should be in a defined opset, or in opset 1 in case it implements oldest implementation. Example of multi-opset operation.
  3. Register the function in ops_bridge.cpp while keeping alphabetical order
  4. Create test model(s) in ONNX models directory. OpenVINO test infrastructure then converts prototxt files to ONNX models - you will use those models later in tests
  5. Add tests covering all use cases here
  6. Check Python xfailed tests to find a test marked as a xfailed for added functionality. If any exist - remove corresponding lines and try to verify by using cmdline "python -m pytest -k name_of_test". More details in adding operators to ONNX Frontend guide

Example Pull Requests

No response

Resources

Contact points

@gkrivor

Ticket

No response

p-wysocki commented 9 months ago

.take

github-actions[bot] commented 9 months ago

Thank you for looking into this issue! Please let us know if you have any questions or require any help.

Aryan8912 commented 6 months ago

please assign to me so I can working on this issue

Aryan8912 commented 6 months ago

please give me file location to me

p-wysocki commented 6 months ago

Hello @Aryan8912, please start with the "What needs to be done" section, together with Contribution Guide from "Resources" section. :)

Aryan8912 commented 6 months ago

Can't find it in discussions brother

p-wysocki commented 6 months ago

Hello @Aryan8912, I'm afraid I don't quite understand your question. The task regards finding out what the differences between different Relu implementations are and fixing them. The 1st point of TODO list contains: "Function already has a common implementation in OpenVINO."

Are you looking for the file where Relu is implemented in OpenVINO?

Aryan8912 commented 6 months ago

Yes brother

p-wysocki commented 6 months ago

I believe @gkrivor meant OpenVINO implementation (as opposed to ONNX Frontend implementation). Relu can be found under https://github.com/openvinotoolkit/openvino/blob/master/src/core/src/op/relu.cpp.

p-wysocki commented 6 months ago

Hi @Aryan8912, are you still working on the task?

Aryan8912 commented 6 months ago

Yes please give me some time bro

Aryan8912 commented 5 months ago

hey Sir, I have made a pull request , I am not able to understand what is the problem with this PR of mine. please help me out

RitikaxShakya commented 4 months ago

Hello, is this issue open? if so can i take up this issue?

mlukasze commented 4 months ago

let's give a chance to current assignee, but I will remember about you