tf.Variable
s являются единственными тензорами, которые могут быть обновлены (https://www.tensorflow.org/guide/variables). С переменными, вы будете использовать код, такой как gather
и scatter_update
для нарезки.
Обратите внимание, что другие тензорыне поддаются присвоению. Если это то, что вы пытаетесь сделать, я бы удивился, почему это необходимо. Тем не менее, все еще можно создавать новые тензоры со значениями, которые вы хотите (вместо назначения на месте), с кодом, который являетсянемного запутанный. Например, следующее не работает:
index = ... tensor = tf.constant([0,1,2,3,4])
tensor[i] = 0
## Doesn't work (TypeError: `Tensor` object does not support item assignment)
Но это может сделать эквивалент:
tensor = tf.constant([0,1,2,3,4])
tensor = tf.concat([tensor[:i], tf.zeros_like(tensor[i:i+1]), tensor[i+1:]], 0)
## This works, creates a new tensor
ИЛИ:
tensor = tf.constant([0,1,2,3,4])
tensor = tf.concat([tensor[:i], tf.fill([1], 0), tensor[i+1:]], 0)
## This works, creates a new tensor