tf.compat.v1.assign
Обновить ref, присвоив ему value.
tf.compat.v1.assign(
ref, value, validate_shape=None, use_locking=None, name=None
)
Мигрировать в TF2
tf.compat.v1.assign в основном совместим с выполнением в режиме eager и tf.function. Однако аргумент 'validate_shape' будет игнорироваться. Чтобы избежать проверки формы, установите 'shape' в tf.TensorShape(None) при создании переменной:
import tensorflow as tf a = tf.Variable([1], shape=tf.TensorShape(None)) tf.compat.v1.assign(a, [2,3])
Чтобы переключиться на родной стиль TF2, можно использовать метод 'assign' класса tf.Variable:
Как сопоставить аргументы
| Имя аргумента TF1 | Имя аргумента TF2 | Примечание |
|---|---|---|
ref | self | В методе assign() |
value | value | В методе assign() |
validate_shape | Не поддерживается | Укажите shape в конструкторе для воспроизведения поведения |
use_locking | use_locking | В методе assign() |
name | name | В методе assign() |
| - |
read_value | Установите в True для воспроизведения поведения (по умолчанию True) |
Описание
Эта операция возвращает тензор, содержащий новое значение ref после присвоения значения. Это облегчает цепочку операций, которым нужно использовать обновленное значение.
| Аргументы | |
|---|---|
ref | Изменяемая Tensor. Должна быть из узла Variable. Может быть неинициализированной. |
value | Tensor. Должен иметь ту же форму и тип, что и ref. Значение, которое будет присвоено переменной. |
validate_shape | Необязательный bool. По умолчанию True. Если True, операция проверит, что форма 'value' соответствует форме тензора, которому присваивается значение. Если False, 'ref' примет форму 'value'. |
use_locking | Необязательный bool. По умолчанию True. Если True, присвоение будет защищено блокировкой; в противном случае поведение не определено, но может быть менее конфликтным. |
name | Название операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Tensor, содержащий новое значение ref после завершения присвоения. |
Пример использования до и после
До:
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_a
2
После:
b = tf.Variable(0, dtype=tf.int64) res_b = b.assign(2) res_b.numpy() 2
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/compat/v1/assign