Как преобразовать опорный тензорный тип в значение тензорного типа?Как разыменовать тензор типа _ref в TensorFlow?
Единственный способ, которым я нашел, - добавить ноль к тензору. Есть ли удобный способ?
Ниже assign
является тензором ссылочного типа. Как избавиться от _ref
?
import tensorflow as tf
counter = tf.Variable(0, name="counter")
zero = tf.constant(0)
one = tf.constant(1)
new_counter = tf.add(counter, one)
assign = tf.assign(counter, new_counter) # dtype=int32_ref
result = tf.add(assign, zero) # dtype=int32
result2 = tf.convert_to_tensor(assign) # dtype=int32_ref
# result3 = assign.value() # has no attribute value
Это выглядит как ожидается, так как ведут себя, как и любые другие в отношении tensorflow графа. Например, если бы добавить один вместо идентификатора, он все равно будет синхронизирован, поскольку хранится на графике, не так ли? – Dims
Добавление значения в опорный тензор почти всегда приводит к копированию (например, 'counter_val + 0' в моем примере выше или' tf.add (assign, zero) 'в вашем вопросе). Это нарушает псевдонимы и, по крайней мере, по моему мнению, более интуитивная семантика. – mrry