- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 tf.while_loop ,其中它基于 tf.Variable 内的元素进行调节。问题是当我使用 tf.scatter_update 时,我收到以下错误消息(注意:当我使用 tf.add 时它工作正常):
---> 11 var = tf.scatter_update(var, [0], tf.add(var, tf.constant([1.0])))
AttributeError: 'Tensor' object has no attribute '_lazy_read'
简化的代码如下(注意:我不能使用tf.add
,因为我只想更新变量张量内的一个元素,所以我必须使用tf.scatter_update
):
def func(var1, cons):
var1, _ = tf.while_loop(cond, body, [var1, x], return_same_structure=True)
with tf.control_dependencies([var1, _]):
return var1
def cond(var, cons):
return tf.reduce_all(tf.less(var,cons))
def body(var, cons):
var = tf.scatter_update(var, [0], tf.add(var, tf.constant([1.0])))
# Works fine when using --> var = tf.add(var, tf.constant([1.0]))
return (var, cons)
with tf.Session() as sess:
x = tf.constant([10.0])
m = tf.Variable([2.0])
b = func(m, x)
init = tf.initialize_all_variables()
sess.run(init)
print sess.run(b)
最佳答案
尝试tf.get_variable
。
import tensorflow as tf
def func(var1, cons):
var1, _ = tf.while_loop(cond, body, [var1, cons], return_same_structure=True)
with tf.control_dependencies([var1, _]):
return var1
def cond(var, cons):
return tf.reduce_all(tf.less(var,cons))
def body(var, cons):
var = tf.get_variable(name="m",initializer=[2.0])
var = tf.scatter_update(var, [0], tf.add(var, tf.constant([1.0])))
# var = tf.add(var, tf.constant([1.0]))
return (var, cons)
with tf.Session() as sess:
x = tf.constant([10.0])
m = tf.Variable([2.0],name='m')
b = func(m, x)
init = tf.initialize_all_variables()
sess.run(init)
print(sess.run(b))
[10.]
关于python - 如何在 tf.while_loop 中使用 tf.scatter_update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56202263/
我正在尝试使用 tf.scatter_update() 更新 tf.while_loop() 内的 tf.Variable。但是,结果是初始值而不是更新后的值。这是我想要做的示例代码: from __
我正在尝试使用 scatter_update 来更新张量的切片。我的第一个熟悉该函数的代码片段效果非常好。 import tensorflow as tf import numpy as np wit
我一直在尝试使用 tf.scatter_update 进行 N 维更新(在 tf.scatter_nd 由于形状不匹配而失败之后)。一般来说,这些将用于创建用于过滤传入张量切片的掩码。 假设输入张量
我有 tf.while_loop ,其中它基于 tf.Variable 内的元素进行调节。问题是当我使用 tf.scatter_update 时,我收到以下错误消息(注意:当我使用 tf.add 时它
我想实现一个函数,它接受一个变量作为输入,改变它的一些行或列,并将它们替换回原始变量。我可以使用 tf.gather 和 tf.scatter_update 对行切片实现它,但无法对列切片执行此操作,
我正在关注这个 Manipulating matrix elements in tensorflow .使用 tf.scatter_update。但我的问题是:如果我的 tf.Variable 是二维
我是一名优秀的程序员,十分优秀!