Fixed scalar creating in tf.Graph decoder #19735
Merged
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.
Root cause analysis:
In tf.Graph decoder scalars are wrapped to list, then to nd.array before passing to ov.Tensor() constructor.
Creating of intermediate nd.array leads to creating of additional object in memory which is deallocated before C++ part access it.
This leads to corruption of scalar value.
Solution:
Creating of additional list is redundant.
Intermediate nd.array needs to be saved to TFGraphNodeDecoder field to avoid deallocating.
Ticket: 117250, 119142
Closes #19019
Code:
Validation:
Documentation: