我有张量例如:X = [1, 1, 0, 0, 1, 2, 2, 0, 1, 2]
。
我想要的是将张量X
缩小为张量,例如:Y = [3, 4, 3]
。
位置0中的Y
是X
中有多少0的计数,而位置1是多少1,依此类推。
我现在正在做的是使用tf.where
函数迭代此张量。但这看起来并不优雅,必须有更好的方法来实现它。
感谢。
答案 0 :(得分:4)
您正在寻找{{3}}。
tf.bincount
请注意tf.unique_with_count
仅处理正整数。如果输入张量不是整数类型或包含负值,则必须使用bincount
。否则//Product/*[not(../preceding-sibling::Product/*/local-name()=local-name())]
就好了。
答案 1 :(得分:4)
我认为您正在寻找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)) )