-
Notifications
You must be signed in to change notification settings - Fork 82
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
[Wait for #2951][application] add onnx example #2958
Open
baek2sm
wants to merge
2
commits into
nnstreamer:main
Choose a base branch
from
baek2sm:onnx_example
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
a55bc51
to
d063973
Compare
97d6e12
to
538c8dc
Compare
dkjung
approved these changes
Mar 7, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
aa8b992
to
53c58a6
Compare
A simplest basic structure of onnx_interpreter has been added. In this implementation, only input layer, weight layer, add layer are supported. Basically, it is implemented by reading and parsing the onnx file using protobuf, and then creating an NNTrainer graph by sequentially checking the nodes. Users can simply specify the path to the ONNX model file through the "loadONNX" NNTrainer API function. The types of tensors handled during the process of creating a graph can be classified into input tensor, constant tensor, weight tensor. Among these, the current implementation only supports input tensor and weight tensor. In ONNX, weight tensors have initializers unlike other tensors, so it can be distinguished as weight tensors through initializers. In the current implementation, initializer list are managed separately as a vector, but this vector will be removed as the implementation is completed in the future. This commit uploads a minimal working implementation, and the onnx interpreter needs to be continuously updated. An example application of reading an onnx file to create an NNTrainer model using this interpreter, and a document setting up the execution environment by installing protobuf will be uploaded as separate commits. **Self evaluation:** Build test: [x]Passed [ ]Failed [ ]Skipped Run test: [x]Passed [ ]Failed [ ]Skipped Signed-off-by: Seungbaek Hong <[email protected]>
added basic onnx application example. It loads `add_example.onnx` file and create nntrainer network graph. (network structure is "input + bias = output") Output of this example is as below: ================================================================================ Layer name Layer type Output dimension Input layer ================================================================================ input input 1:1:1:2 -------------------------------------------------------------------------------- bias weight 1:1:1:2 -------------------------------------------------------------------------------- add add 1:1:1:2 input bias ================================================================================ **Self evaluation:** Build test: [x]Passed [ ]Failed [ ]Skipped Run test: [x]Passed [ ]Failed [ ]Skipped Signed-off-by: Seungbaek Hong <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
added basic onnx application example.
It loads
add_example.onnx
file and create nntrainer network graph.(network structure is "input + bias = output")
Output of this example is as below:
Self evaluation:
Build test: [x]Passed [ ]Failed [ ]Skipped
Run test: [x]Passed [ ]Failed [ ]Skipped
Signed-off-by: Seungbaek Hong [email protected]