【问题标题】:AttributeError: object has no attribute '_lazy_read' [closed]AttributeError:对象没有属性“_lazy_read”[关闭]
【发布时间】:2019-01-28 10:11:40
【问题描述】:
我正在使用 python 3 和 tensorflow 1.12 & eager eval
我正在尝试按照here 的说明使用分散更新
我收到以下错误:
AttributeError: 'EagerTensor' 对象没有属性 '_lazy_read'
是否有可用于 Eager eval 的解决方法或其他功能?
【问题讨论】:
标签:
python
tensorflow
machine-learning
deep-learning
eager-execution
【解决方案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)>