|  View source on GitHub | 
Update ref by assigning value to it.
tf.compat.v1.assign(
    ref, value, validate_shape=None, use_locking=None, name=None
)
Migrate to TF2
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:
import tensorflow as tfa = tf.Variable([1], shape=tf.TensorShape(None))tf.compat.v1.assign(a, [2,3])
To switch to the native TF2 style, one could use method 'assign' of
tf.Variable:
How to Map Arguments
| TF1 Arg Name | TF2 Arg Name | Note | 
|---|---|---|
| ref | self | In assign()method | 
| value | value | In assign()method | 
| validate_shape | Not supported | Specify shapein the
constructor to replicate
behavior | 
| use_locking | use_locking | In assign()method | 
| name | name | In assign()method | 
| - | read_value | Set to True to replicate behavior (True is default) | 
Description
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.
| Returns | |
|---|---|
| A Tensorthat will hold the new value ofrefafter
the assignment has completed. | 
Before & After Usage Example
Before:
with tf.Graph().as_default():with tf.compat.v1.Session() as sess:a = tf.compat.v1.Variable(0, dtype=tf.int64)sess.run(a.initializer)update_op = tf.compat.v1.assign(a, 2)res_a = sess.run(update_op)res_a2
After:
b = tf.Variable(0, dtype=tf.int64)res_b = b.assign(2)res_b.numpy()2