tf.raw_ops.ScatterNdNonAliasingAdd
Stay organized with collections
Save and categorize content based on your preferences.
Applies sparse addition to input
using individual values or slices
tf.raw_ops.ScatterNdNonAliasingAdd(
input, indices, updates, name=None
)
from updates
according to indices indices
. The updates are non-aliasing:
input
is only modified in-place if no other operations will use it.
Otherwise, a copy of input
is made. This operation has a gradient with
respect to both input
and updates
.
input
is a Tensor
with rank P
and indices
is a Tensor
of rank Q
.
indices
must be integer tensor, containing indices into input
.
It must be shape \([d_0, ..., d_{Q-2}, K]\) where 0 < K <= P
.
The innermost dimension of indices
(with length K
) corresponds to
indices into elements (if K = P
) or (P-K)
-dimensional slices
(if K < P
) along the K
th dimension of input
.
updates
is Tensor
of rank Q-1+P-K
with shape:
\[[d_0, ..., d_{Q-2}, input.shape[K], ..., input.shape[P-1]].\]
For example, say we want to add 4 scattered elements to a rank-1 tensor to 8
elements. In Python, that addition would look like this:
input = tf.constant([1, 2, 3, 4, 5, 6, 7, 8])
indices = tf.constant([[4], [3], [1], [7]])
updates = tf.constant([9, 10, 11, 12])
output = tf.scatter_nd_non_aliasing_add(input, indices, updates)
with tf.Session() as sess:
print(sess.run(output))
The resulting value output
would look like this:
[1, 13, 3, 14, 14, 6, 7, 20]
See tf.scatter_nd
for more details about how to make updates to slices.
Args |
input
|
A Tensor . Must be one of the following types: float32 , float64 , int32 , uint8 , int16 , int8 , complex64 , int64 , qint8 , quint8 , qint32 , bfloat16 , qint16 , quint16 , uint16 , complex128 , half , uint32 , uint64 , bool .
A Tensor.
|
indices
|
A Tensor . Must be one of the following types: int32 , int64 .
A Tensor. Must be one of the following types: int32 , int64 .
A tensor of indices into input .
|
updates
|
A Tensor . Must have the same type as input .
A Tensor. Must have the same type as ref. A tensor of updated values
to add to input .
|
name
|
A name for the operation (optional).
|
Returns |
A Tensor . Has the same type as input .
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2024-04-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-04-26 UTC."],[],[],null,["# tf.raw_ops.ScatterNdNonAliasingAdd\n\nApplies sparse addition to `input` using individual values or slices\n\n#### View aliases\n\n\n**Compat aliases for migration**\n\nSee\n[Migration guide](https://www.tensorflow.org/guide/migrate) for\nmore details.\n\n[`tf.compat.v1.raw_ops.ScatterNdNonAliasingAdd`](https://www.tensorflow.org/api_docs/python/tf/raw_ops/ScatterNdNonAliasingAdd)\n\n\u003cbr /\u003e\n\n tf.raw_ops.ScatterNdNonAliasingAdd(\n input, indices, updates, name=None\n )\n\nfrom `updates` according to indices `indices`. The updates are non-aliasing:\n`input` is only modified in-place if no other operations will use it.\nOtherwise, a copy of `input` is made. This operation has a gradient with\nrespect to both `input` and `updates`.\n\n`input` is a `Tensor` with rank `P` and `indices` is a `Tensor` of rank `Q`.\n\n`indices` must be integer tensor, containing indices into `input`.\nIt must be shape \\\\(\\[d_0, ..., d_{Q-2}, K\\]\\\\) where `0 \u003c K \u003c= P`.\n\nThe innermost dimension of `indices` (with length `K`) corresponds to\nindices into elements (if `K = P`) or `(P-K)`-dimensional slices\n(if `K \u003c P`) along the `K`th dimension of `input`.\n\n`updates` is `Tensor` of rank `Q-1+P-K` with shape:\n\n\\\\\\[\\[d_0, ..., d_{Q-2}, input.shape\\[K\\], ..., input.shape\\[P-1\\]\\].\\\\\\]\n\nFor example, say we want to add 4 scattered elements to a rank-1 tensor to 8\nelements. In Python, that addition would look like this: \n\n input = tf.constant([1, 2, 3, 4, 5, 6, 7, 8])\n indices = tf.constant([[4], [3], [1], [7]])\n updates = tf.constant([9, 10, 11, 12])\n output = tf.scatter_nd_non_aliasing_add(input, indices, updates)\n with tf.Session() as sess:\n print(sess.run(output))\n\nThe resulting value `output` would look like this: \n\n [1, 13, 3, 14, 14, 6, 7, 20]\n\nSee [`tf.scatter_nd`](../../tf/scatter_nd) for more details about how to make updates to slices.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|-----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `input` | A `Tensor`. Must be one of the following types: `float32`, `float64`, `int32`, `uint8`, `int16`, `int8`, `complex64`, `int64`, `qint8`, `quint8`, `qint32`, `bfloat16`, `qint16`, `quint16`, `uint16`, `complex128`, `half`, `uint32`, `uint64`, `bool`. A Tensor. |\n| `indices` | A `Tensor`. Must be one of the following types: `int32`, `int64`. A Tensor. Must be one of the following types: `int32`, `int64`. A tensor of indices into `input`. |\n| `updates` | A `Tensor`. Must have the same type as `input`. A Tensor. Must have the same type as ref. A tensor of updated values to add to `input`. |\n| `name` | A name for the operation (optional). |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ------- ||\n|---|---|\n| A `Tensor`. Has the same type as `input`. ||\n\n\u003cbr /\u003e"]]