我有一个向量,我想要它的“排序索引函数”。
我的意思是,如果你有一个k = length(v)的向量v并且用
进行排序sort_v=tf.nn.top_k(v,k)
然后我希望“分类索引函数”psi与
v(psi(i))=sort_v(i)
如何在tensorflow中获得此函数(作为张量)?
答案 0 :(得分:1)
根据文档tf_nn.top_k返回排序张量的值和索引,因此您可以简单地使用两个变量,一个用于值,一个用于索引
a_sorted_val, a_sorted_ind = tf.nn.top_k(a, 2)
a_sorted_ind
是表示为张量的函数
示例:
将tensorflow导入为tf 导入numpy为np
with tf.Session():
a = tf.convert_to_tensor([[4, 3, 2, 1], [5, 6, 7, 8]])
a_sort_val, a_sort_ind = tf.nn.top_k(a, 4)
values = a_sort_val.eval()
indices = a_sort_ind.eval()
unsorted_a = a.eval()
print(unsorted_a)
print(values)
print(indices)
type(a_sort_ind)
[[4 3 2 1] <-- unsorted
[5 6 7 8]]
[[4 3 2 1] <-- sorted tensor
[8 7 6 5]]
[[0 1 2 3] <-- indices of sorted tensor
[3 2 1 0]]
tensorflow.python.framework.ops.Tensor