- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在关注这个 Manipulating matrix elements in tensorflow .使用 tf.scatter_update。但我的问题是:如果我的 tf.Variable 是二维的会怎样?比方说:
a = tf.Variable(initial_value=[[0, 0, 0, 0],[0, 0, 0, 0]])
例如,我如何更新每行的第一个元素并为其分配值 1?
我试过类似的东西
for line in range(2):
sess.run(tf.scatter_update(a[line],[0],[1]))
但它失败了(我预料到了)并给我错误:
TypeError: Input 'ref' of 'ScatterUpdate' Op requires l-value input
我该如何解决这类问题?
`
最佳答案
在 tensorflow 中,您不能更新张量,但可以更新变量。
scatter_update
运算符只能更新变量的第一个维度。您必须始终将引用张量传递给散点更新(a
而不是 a[line]
)。
这是更新变量第一个元素的方法:
import tensorflow as tf
g = tf.Graph()
with g.as_default():
a = tf.Variable(initial_value=[[0, 0, 0, 0],[0, 0, 0, 0]])
b = tf.scatter_update(a, [0, 1], [[1, 0, 0, 0], [1, 0, 0, 0]])
with tf.Session(graph=g) as sess:
sess.run(tf.initialize_all_variables())
print sess.run(a)
print sess.run(b)
输出:
[[0 0 0 0]
[0 0 0 0]]
[[1 0 0 0]
[1 0 0 0]]
但是必须再次更改整个张量,分配一个全新的张量可能会更快。
关于python - 在二维 tf.Variable 中使用 tf.scatter_update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40320585/
我正在尝试使用 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 是二维
我是一名优秀的程序员,十分优秀!