我想获得张量中元素的计数,例如,t = [1,2,0,0,0,0](t是张量),我可以得到'0'的数量4通过在python中调用t.count(0),但在tensorflow中,我找不到任何函数来执行此操作.我如何得到'0'的数量?可以请别人帮帮我吗?
Dan*_*ter 10
现在张量流中没有内置计数方法.但您可以使用现有工具在以下方法中执行此操作:
def tf_count(t, val):
elements_equal_to_value = tf.equal(t, val)
as_ints = tf.cast(elements_equal_to_value, tf.int32)
count = tf.reduce_sum(as_ints)
return count
Run Code Online (Sandbox Code Playgroud)
要只计算一个特定的元素,你可以创建一个布尔掩码,将其转换为int并加总:
import tensorflow as tf
X = tf.constant([6, 3, 3, 3, 0, 1, 3, 6, 7])
res = tf.reduce_sum(tf.cast(tf.equal(X, 3), tf.int32))
with tf.Session() as sess:
print sess.run(res)
Run Code Online (Sandbox Code Playgroud)
您还可以使用tf.unique_with_counts计算列表/张量中的每个元素;
import tensorflow as tf
X = tf.constant([6, 3, 3, 3, 0, 1, 3, 6, 7])
y, idx, cnts = tf.unique_with_counts(X)
with tf.Session() as sess:
a, _, b = sess.run([y, idx, cnts])
print a
print b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10045 次 |
| 最近记录: |