例如,我有一个张量:X = [1, 1, 0, 0, 1, 2, 2, 0, 1, 2]。
我想要的是将这个张量 X 减少为张量,例如:Y = [3, 4, 3]。
其中位置 0 的 Y 是 X 中有多少个 0 的计数,位置 1 有多少个 1,依此类推。
我现在正在做的是使用 tf.where 函数迭代这个张量。但这似乎并不优雅,必须有更好的方法来做到这一点。
谢谢。
请您参考如下方法:
我认为您正在寻找 Y = tf.bincount(X):
X = tf.constant([1, 1, 0, 0, 1, 2, 2, 0, 1, 2])
Y = tf.bincount(X)
sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
Y.eval()
# output
#[3, 4, 3]
对于负整数,您可以使用:
tf.bincount(X + tf.abs(tf.reduce_min(X)) )
