This operation outputs ref after the update is done.
This makes it easier to chain operations that need to use the reset value.
Unlike tf.math.add, this op does not broadcast. ref and value must have
the same shape.
Args
ref
A mutable Tensor. Must be one of the following types: float32,
float64, int64, int32, uint8, uint16, int16, int8,
complex64, complex128, qint8, quint8, qint32, half. Should be
from a Variable node.
value
A Tensor. Must have the same shape and dtype as ref. The value to
be added to the variable.
use_locking
An optional bool. Defaults to False. If True, the addition
will be protected by a lock; otherwise the behavior is undefined, but may
exhibit less contention.
name
A name for the operation (optional).
Returns
Same as ref. Returned as a convenience for operations that want
to use the new value after the variable has been updated.
[[["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.compat.v1.assign_add\n\n\u003cbr /\u003e\n\n|-----------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.16.1/tensorflow/python/ops/state_ops.py#L205-L274) |\n\nUpdate `ref` by adding `value` to it. \n\n tf.compat.v1.assign_add(\n ref, value, use_locking=None, name=None\n )\n\n\u003cbr /\u003e\n\nMigrate to TF2\n--------------\n\n\u003cbr /\u003e\n\n| **Caution:** This API was designed for TensorFlow v1. Continue reading for details on how to migrate from this API to a native TensorFlow v2 equivalent. See the [TensorFlow v1 to TensorFlow v2 migration guide](https://www.tensorflow.org/guide/migrate) for instructions on how to migrate the rest of your code.\n\n[`tf.compat.v1.assign_add`](../../../tf/compat/v1/assign_add) is mostly compatible with eager\nexecution and [`tf.function`](../../../tf/function).\n\nTo switch to the native TF2 style, one could use method 'assign_add' of\n[`tf.Variable`](../../../tf/Variable):\n\n#### How to Map Arguments\n\n| TF1 Arg Name | TF2 Arg Name | Note |\n|---------------|---------------|-----------------------------------------------------|\n| `ref` | `self` | In `assign_add()` method |\n| `value` | `value` | In `assign_add()` method |\n| `use_locking` | `use_locking` | In `assign_add()` method |\n| `name` | `name` | In `assign_add()` method |\n| - | `read_value` | Set to True to replicate behavior (True is default) |\n\n#### Before \\& After Usage Example\n\nBefore: \n\n with tf.Graph().as_default():\n with tf.compat.v1.Session() as sess:\n a = tf.compat.v1.Variable(0, dtype=tf.int64)\n sess.run(a.initializer)\n update_op = tf.compat.v1.assign_add(a, 1)\n res_a = sess.run(update_op)\n res_a\n 1\n\nAfter: \n\n b = tf.Variable(0, dtype=tf.int64)\n res_b = b.assign_add(1)\n res_b.numpy()\n 1\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nDescription\n-----------\n\nThis operation outputs `ref` after the update is done.\nThis makes it easier to chain operations that need to use the reset value.\nUnlike [`tf.math.add`](../../../tf/math/add), this op does not broadcast. `ref` and `value` must have\nthe same shape.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|---------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `ref` | A mutable `Tensor`. Must be one of the following types: `float32`, `float64`, `int64`, `int32`, `uint8`, `uint16`, `int16`, `int8`, `complex64`, `complex128`, `qint8`, `quint8`, `qint32`, `half`. Should be from a `Variable` node. |\n| `value` | A `Tensor`. Must have the same shape and dtype as `ref`. The value to be added to the variable. |\n| `use_locking` | An optional `bool`. Defaults to `False`. If True, the addition will be protected by a lock; otherwise the behavior is undefined, but may exhibit less contention. |\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| Same as `ref`. Returned as a convenience for operations that want to use the new value after the variable has been updated. ||\n\n\u003cbr /\u003e"]]