我正在尝试模仿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,并且由于某种原因它的形状得到了重新调整。
答案 0 :(得分:1)
这似乎与我所寻找的最接近,但是我担心这会产生重复的值,并且如果测试很大,那么它将很大。
tf.scatter_add(test,[2,10],1)
欢迎更好的答案。