tf.compat.v1.assign is mostly compatible with eager
execution and tf.function. However, argument 'validate_shape' will be
ignored. To avoid shape validation, set 'shape' to tf.TensorShape(None) when
constructing the variable:
This operation outputs a Tensor that holds the new value of ref after
the value has been assigned. This makes it easier to chain operations that
need to use the reset value.
Args
ref
A mutable Tensor. Should be from a Variable node. May be
uninitialized.
value
A Tensor. Must have the same shape and dtype as ref. The value to
be assigned to the variable.
validate_shape
An optional bool. Defaults to True. If true, the
operation will validate that the shape of 'value' matches the shape of the
Tensor being assigned to. If false, 'ref' will take on the shape of
'value'.
use_locking
An optional bool. Defaults to True. If True, the assignment
will be protected by a lock; otherwise the behavior is undefined, but may
exhibit less contention.
name
A name for the operation (optional).
Returns
A Tensor that will hold the new value of ref after
the assignment has completed.
[null,null,["Last updated 2024-04-26 UTC."],[],[],null,["# tf.compat.v1.assign\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#L277-L356) |\n\nUpdate `ref` by assigning `value` to it. \n\n tf.compat.v1.assign(\n ref, value, validate_shape=None, 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`](../../../tf/compat/v1/assign) is mostly compatible with eager\nexecution and [`tf.function`](../../../tf/function). However, argument 'validate_shape' will be\nignored. To avoid shape validation, set 'shape' to tf.TensorShape(None) when\nconstructing the variable: \n\n import tensorflow as tf\n a = tf.Variable([1], shape=tf.TensorShape(None))\n tf.compat.v1.assign(a, [2,3])\n\nTo switch to the native TF2 style, one could use method 'assign' 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()` method |\n| `value` | `value` | In `assign()` method |\n| `validate_shape` | Not supported | Specify `shape` in the constructor to replicate behavior |\n| `use_locking` | `use_locking` | In `assign()` method |\n| `name` | `name` | In `assign()` method |\n| - | `read_value` | Set to True to replicate behavior (True is default) |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\nDescription\n-----------\n\n### Used in the notebooks\n\n| Used in the tutorials |\n|----------------------------------------------------------------------------------------------------------------|\n| - [Tutorial on Multi Armed Bandits in TF-Agents](https://www.tensorflow.org/agents/tutorials/bandits_tutorial) |\n\nThis operation outputs a Tensor that holds the new value of `ref` after\nthe value has been assigned. This makes it easier to chain operations that\nneed to use the reset value.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `ref` | A mutable `Tensor`. Should be from a `Variable` node. May be uninitialized. |\n| `value` | A `Tensor`. Must have the same shape and dtype as `ref`. The value to be assigned to the variable. |\n| `validate_shape` | An optional `bool`. Defaults to `True`. If true, the operation will validate that the shape of 'value' matches the shape of the Tensor being assigned to. If false, 'ref' will take on the shape of 'value'. |\n| `use_locking` | An optional `bool`. Defaults to `True`. If True, the assignment 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| A `Tensor` that will hold the new value of `ref` after the assignment has completed. ||\n\n\u003cbr /\u003e\n\n#### Before \\& After Usage Example\n\n#### Before:\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(a, 2)\n res_a = sess.run(update_op)\n res_a\n 2\n\n#### After:\n\n b = tf.Variable(0, dtype=tf.int64)\n res_b = b.assign(2)\n res_b.numpy()\n 2"]]