AttributeError: у объекта нет атрибута '_lazy_read'
Я использую Python 3 с tenorflow 1.12 и нетерпением Eval
Я пытаюсь использовать обновление Scatter, как описано здесь
Я получаю следующую ошибку:
AttributeError: у объекта 'EagerTensor' нет атрибута '_lazy_read'
Есть ли обходной путь или другая функция, которая доступна для нетерпеливого eval?
1 ответ
Решение
scatter_update нуждается в переменной, а не в постоянном тензоре:
Применяет редкие обновления к ссылке на переменную.
Я думаю, что вы передали постоянный тензор scater_update
Это вызвало исключение. Вот пример в режиме ожидания:
import tensorflow as tf
tf.enable_eager_execution()
data = tf.Variable([[2],
[3],
[4],
[5],
[6]])
cond = tf.where(tf.less(data, 5)) # update value less than 5
match_data = tf.gather_nd(data, cond)
square_data = tf.square(match_data) # square value less than 5
data = tf.scatter_nd_update(data, cond, square_data)
print(data)
# array([[ 4],
# [ 9],
# [16],
# [ 5],
# [ 6]], dtype=int32)>