如何计算张量流量张量中的元素?

时间:2017-07-19 15:14:28

标签: python tensorflow

我有张量例如:X = [1, 1, 0, 0, 1, 2, 2, 0, 1, 2]

我想要的是将张量X缩小为张量,例如:Y = [3, 4, 3]

位置0中的YX中有多少0的计数,而位置1是多少1,依此类推。

我现在正在做的是使用tf.where函数迭代此张量。但这看起来并不优雅,必须有更好的方法来实现它。

感谢。

2 个答案:

答案 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)) )