Tensor的排序

针对tensorflow2.0

(1)tf.sort/tf.argsort函数:排序函数以及排好之后输出对应的索引函数

In [17]: a = tf.random.shuffle(tf.range(5))

In [18]: a
Out[18]: <tf.Tensor: id=45, shape=(5,), dtype=int32, numpy=array([3, 0, 1, 4, 2])>

In [19]: tf.sort(a,direction='DESCENDING')
Out[19]: <tf.Tensor: id=53, shape=(5,), dtype=int32, numpy=array([4, 3, 2, 1, 0])>

In [20]: tf.argsort(a,direction='DESCENDING')
Out[20]: <tf.Tensor: id=63, shape=(5,), dtype=int32, numpy=array([3, 0, 4, 2, 1])>

具体用法:tf.sort(a,direction='DESCENDING')与tf.argsort(a,direction='DESCENDING')相似,其中direction代表排序方向,上市或者下降。

(2)tf.math.top_k()函数:降序排序并返回指定k的数值及索引

In [21]: a = tf.random.uniform([3,3],maxval=10,dtype=tf.int32)

In [22]: a
Out[22]:
<tf.Tensor: id=67, shape=(3, 3), dtype=int32, numpy=
array([[6, 9, 8],
       [6, 9, 7],
       [2, 0, 4]])>

In [23]: res = tf.math.top_k(a,2)

In [24]: res.indices
Out[24]:
<tf.Tensor: id=70, shape=(3, 2), dtype=int32, numpy=
array([[1, 2],
       [1, 2],
       [2, 0]])>

In [25]: res.values
Out[25]:
<tf.Tensor: id=69, shape=(3, 2), dtype=int32, numpy=
array([[9, 8],
       [9, 7],
       [4, 2]])>

定义一个3*3的矩阵a,然后使用math.top_k得到res,具体过程是:对每一行进行降序排序,然后取前两个值以及它的索引作为输出。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值