https://github.com/zaccharieramzi/tf-slice-assign
A tool for assignment to a slice in TensorFlow
https://github.com/zaccharieramzi/tf-slice-assign
tensorflow
Last synced: about 1 year ago
JSON representation
A tool for assignment to a slice in TensorFlow
- Host: GitHub
- URL: https://github.com/zaccharieramzi/tf-slice-assign
- Owner: zaccharieramzi
- License: mit
- Created: 2020-06-01T13:04:43.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-07-23T16:30:06.000Z (almost 5 years ago)
- Last Synced: 2025-06-04T11:55:59.823Z (about 1 year ago)
- Topics: tensorflow
- Language: Python
- Size: 24.4 KB
- Stars: 20
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tf-slice-assign

A tool for assignment to a slice in TensorFlow.
In TensorFlow, as opposed to Pytorch, it is currently impossible to assign to
the slice of a tensor in a range of different settings.
To mitigate this issue, `tf-slice-assign` introduces a single function that
allows to do exactly this using [`tensor_scatter_nd_update`](https://www.tensorflow.org/api_docs/python/tf/tensor_scatter_nd_update).
## Use
```python
from tf_slice_assign import slice_assign
new_tensor = slice_assign(old_tensor, assignment, *slice_args)
```
You can find a relatively simple example [here](example.py).
## Installation
```
pip install tf-slice-assign
```
## List of GitHub issues and StackOverflow questions regarding TensorFlow slice assignment
In the following table, I am trying to give the reasons as to why no mitigation
for the current problem exists.
| Link | Status |
|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
| [SO](https://stackoverflow.com/questions/62092147/how-to-efficiently-assign-to-a-slice-of-a-tensor-in-tensorflow) | Current answer requires creating a `tf.Variable` for each slice assignment you make |
| [GH](https://github.com/tensorflow/tensorflow/issues/36559#issue-561880519) | Question is about `tf.Variable` |
| [SO](https://stackoverflow.com/questions/39157723/how-to-do-slice-assignment-in-tensorflow) | Answers for `tf.Variable` or using `tensor_scatter_update` in a non-adaptable way |
| [GH](https://github.com/tensorflow/tensorflow/issues/33131#issue-503809713) | Suggestion to use `tensor_scatter_nd_update` |
| [GH](https://github.com/tensorflow/tensorflow/issues/14132#issue-270037738) | An answer suggest creating a mask, but a mask can actually be as difficult to create as the indices for `tensor_scatter_nd_update` |