gpt4 book ai didi

前 n 个值的 Tensorflow 指标矩阵

转载 作者:行者123 更新时间:2023-12-04 10:15:10 25 4
gpt4 key购买 nike

有谁知道如何提取 2 级张量每行的前 n 个最大值?

例如,如果我想要形状为 [2,4] 的张量的前 2 个值,其值为:

[[40, 30, 20, 10], [10, 20, 30, 40]]

所需的条件矩阵如下所示:
[[真、真、假、假],[假、假、真、真]]

一旦我有了条件矩阵,我就可以使用 tf.select 来选择实际值。

感谢您的帮助!

最佳答案

你可以使用内置的 tf.nn.top_k功能:

a = tf.convert_to_tensor([[40, 30, 20, 10], [10, 20, 30, 40]])
b = tf.nn.top_k(a, 2)

print(sess.run(b))
TopKV2(values=array([[40, 30],
[40, 30]], dtype=int32), indices=array([[0, 1],
[3, 2]], dtype=int32))

print(sess.run(b).values))
array([[40, 30],
[40, 30]], dtype=int32)

获取 bool 值 True/False值,您可以先获取第 k 个值,然后使用 tf.greater_equal :
kth = tf.reduce_min(b.values)
top2 = tf.greater_equal(a, kth)
print(sess.run(top2))
array([[ True, True, False, False],
[False, False, True, True]], dtype=bool)

关于前 n 个值的 Tensorflow 指标矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40808772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com