-
Notifications
You must be signed in to change notification settings - Fork 2.6k
FillEmptyRows-16
operator specification
#28046
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
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: p-wysocki <[email protected]>
This PR will be closed in a week because of 2 weeks of no activity. |
This PR was closed because it has been stalled for 2 week with no activity. |
…into empty_rows_spec Signed-off-by: p-wysocki <[email protected]>
Signed-off-by: p-wysocki <[email protected]>
...ocumentation/openvino-ir-format/operation-sets/operation-specs/sparse/fill-empty-rows-16.rst
Outdated
Show resolved
Hide resolved
...ocumentation/openvino-ir-format/operation-sets/operation-specs/sparse/fill-empty-rows-16.rst
Outdated
Show resolved
Hide resolved
* **1**: ``output_indices`` 2D tensor of type *T_IDX* indicating the positions at which ``output_values`` are placed in the sparse tensor. | ||
It is of shape ``[M', N]``, where: | ||
|
||
* ``M'`` is the length of the updated ``output_values``. | ||
* ``N`` is equal to the rank of ``dense_shape``. | ||
* **2**: ``output_values`` 1D tensor containing the values of type *T* to be inserted at the specified indices. | ||
* **3**: ``empty_row_indicator`` 1D tensor of type ``boolean`` indicating True for rows which were empty before executing the operation. |
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.
To have the whole sparse tensor representation, shouldn't the dense_shape
be an output as well?
On the other hand, assuming it's the same as the input dense_shape
maybe it's reduntant.
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.
tf.raw_ops.SparseFillEmptyRows
doesn't return the output SparseTensor
at all according to https://www.tensorflow.org/api_docs/python/tf/raw_ops/SparseFillEmptyRows#returns. Do you think we should have it?
That's also interesting because there's tf.sparse.fill_empty_rows
and then there's tf.raw_ops.SparseFillEmptyRows
, which have quite different outputs:
https://www.tensorflow.org/api_docs/python/tf/sparse/fill_empty_rows
https://www.tensorflow.org/api_docs/python/tf/raw_ops/SparseFillEmptyRows
However the BST model I received is using the raw_ops
one and in the graph the SparseTensor
is not returned.
...ocumentation/openvino-ir-format/operation-sets/operation-specs/sparse/fill-empty-rows-16.rst
Outdated
Show resolved
Hide resolved
...ocumentation/openvino-ir-format/operation-sets/operation-specs/sparse/fill-empty-rows-16.rst
Outdated
Show resolved
Hide resolved
**Outputs**: | ||
|
||
* **1**: ``output_indices`` 2D tensor of type *T_IDX* indicating the positions at which ``output_values`` are placed in the sparse tensor. | ||
It is of shape ``[M', N]``, where: |
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.
do we really need generalization of tf.raw_ops.SparseFillEmptyRows? May be to consider only 2D sparse tensor that is only needed by TF?
I think ND case can be converged to 2D case by reshape
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.
If only 2D is needed, let's limit it. Applied.
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.
btw, will we support the same operation for string sparse tensor?
…ts/operation-specs/sparse/fill-empty-rows-16.rst Co-authored-by: Katarzyna Mitrus <[email protected]>
…ts/operation-specs/sparse/fill-empty-rows-16.rst Co-authored-by: Roman Kazantsev <[email protected]>
…ts/operation-specs/sparse/fill-empty-rows-16.rst Co-authored-by: Katarzyna Mitrus <[email protected]>
Yes, it's planned but as a separate operator. It was a decision based on how complex an all-in-one implementation would be - you can peek at the initial commit in the PR (7d810fc) |
Signed-off-by: p-wysocki <[email protected]>
Signed-off-by: p-wysocki <[email protected]>
…into empty_rows_spec Signed-off-by: p-wysocki <[email protected]>
Signed-off-by: p-wysocki <[email protected]>
...ocumentation/openvino-ir-format/operation-sets/operation-specs/sparse/fill-empty-rows-16.rst
Outdated
Show resolved
Hide resolved
…ts/operation-specs/sparse/fill-empty-rows-16.rst
...ocumentation/openvino-ir-format/operation-sets/operation-specs/sparse/fill-empty-rows-16.rst
Show resolved
Hide resolved
…ts/operation-specs/sparse/fill-empty-rows-16.rst Co-authored-by: Roman Kazantsev <[email protected]>
...ocumentation/openvino-ir-format/operation-sets/operation-specs/sparse/fill-empty-rows-16.rst
Show resolved
Hide resolved
…ts/operation-specs/sparse/fill-empty-rows-16.rst Co-authored-by: Roman Kazantsev <[email protected]>
Details:
Related PRs:
SparseFillEmptyRows-16
to Core #30191Tickets: