You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So I wanted to use cppflow for models with multiple outputs that I can differentiate only by their names instead of the tensor names which are all "StatefulPartitionedCall:index". The way I proceed is quite ugly, but that's what I was able to come up with in a short amount of time. I'm opening a pull request because I'd like to gather comments.
For example, this is the output of saved_model_cli.exe :
You would call model::get_tensor_mapping("detection_scores") and it would return "StatefulPartitionedCall:4". Then, you could use this as usual to get the detection scores.
The mapping is present in the metagraph which is extracted with the tensorflow C API, but not parsed. AFAIK, the latter just does not have the functionality to do so, so adding it in cppflow is somewhat sloppy. I'm searching for the raw bytes to extract it.
This is definitely interesting, since the beginning of cppflow I've been bothered with the StatefulParitionedCall names.
So, if I understood correctly, you are parsing the protobuf MetaGraphDef to obtaining the correspondences between names and tensor names. As from the code is a bit difficult to tell how you are doing the parsing, could you elaborate a bit more on what are you trying to find?
I think directly parsing the MetaGraphDef as a string is not optimal, and may be a problem if the protocols change. Do you know any alternative to this? I've read the C API but I did not found any function providing information about MetaGraphDef. Maybe opening an issue on the TensorFlow repo we may obtain some info on how to proceed with this.
serizba
changed the title
Add functionality for using output names instead of tensor names
Support for signature names instead of tensor names
Sep 23, 2022
This file contains hidden or 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
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.
Hi folks,
So I wanted to use cppflow for models with multiple outputs that I can differentiate only by their names instead of the tensor names which are all "StatefulPartitionedCall:index". The way I proceed is quite ugly, but that's what I was able to come up with in a short amount of time. I'm opening a pull request because I'd like to gather comments.
For example, this is the output of saved_model_cli.exe :

You would call model::get_tensor_mapping("detection_scores") and it would return "StatefulPartitionedCall:4". Then, you could use this as usual to get the detection scores.
The mapping is present in the metagraph which is extracted with the tensorflow C API, but not parsed. AFAIK, the latter just does not have the functionality to do so, so adding it in cppflow is somewhat sloppy. I'm searching for the raw bytes to extract it.