如果我们有1-D Tensor,我们可以使用tf.scatter_update
或通过解包,替换,打包来替换单个元素和0-D Tensor。
示例:
# Pretend x came from somewhere useful.
x = tf.Variable(0)
A = tf.Variable([1, 2, 3])
# Replace the 2 with whatever's in x
A = tf.scatter_update(A, 1, x)
A
现在会生成[1, 0, 3]
。
是否可以使用n-D阵列进行此操作?
示例:
# Pretend x came from somewhere useful.
x = tf.Variable(0, dtype=tf.float32)
A = tf.Variable(np.random.rand(3, 3, 3, 3))
# What's the equivalent of A[1, 1, 1, 1] = x ?
我认为我可以通过tf.unpack
,tf.scatter_update
和tf.pack
的混合获得所需的结果,但它很冗长,而且我们会替换(可能很大的)3-D Tensor而不是仅仅替换微小的0-D Tensor。还有更好的方法吗?
答案 0 :(得分:0)
如果你想有效地做到这一点,我相信你需要写一个新的Op或概括scatter_update。