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)>
Другие вопросы по тегам