Tensorflow:试图通过张量值访问变量的索引?

时间:2018-12-06 16:58:47

标签: python tensorflow

我正在尝试模仿TensorFlow中numpy的以下行为。

z = np.zeros(2 * 10 - 1, dtype=np.float32)
z[[2,10]] = 1

我有什么

test = tf.Variable(tf.zeros(2 * 10 - 1, dtype=tf.float32))
test[tf.constant([2,10])].assign(1)

我需要变量,因此不能只使用常量零。

尝试此操作时出现错误

InvalidArgumentError: Shape must be rank 1 but is rank 2 for 'strided_slice' (op: 'StridedSlice') with input shapes: [19], [1,2], [1,2], [1].

但这是没有意义的,因为我提供的索引的排名为1,并且由于某种原因它的形状得到了重新调整。

我如何模仿上面的行为?

1 个答案:

答案 0 :(得分:1)

这似乎与我所寻找的最接近,但是我担心这会产生重复的值,并且如果测试很大,那么它将很大。

tf.scatter_add(test,[2,10],1)

欢迎更好的答案。