gpt4 book ai didi

python - 根据 tensorflow 中的两列对张量进行排序

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:48 24 4
gpt4 key购买 nike

是否可以在 Tensorflow 中根据两列中的值对张量进行排序?

例如,假设我有以下张量。

[[1,2,3]
[2,3,5]
[1,4,6]
[2,2,1]
[0,4,2]]

我愿意喜欢先根据第一列排序,然后根据第二列排序。排序后如下所示。

[[0,4,2]
[1,2,3]
[1,4,6]
[2,2,1]
[2,3,5]]

有什么方法可以使用 tensorflow 实现这一点?我能够根据单个列进行排序。但是基于两列的排序对我来说是个问题。请问有人能帮忙吗?

最佳答案

一个非常幼稚的方法,

import tensorflow as tf

a = tf.constant([[1, 2, 3],
[2, 3, 5],
[1, 4, 6],
[2, 2, 1],
[0, 4, 2]])

# b = a[:0]*10 + a[:1]*1 -- > (e.g 1*10+2*1 =12)
b = tf.add(tf.slice(a, [0, 0], [-1, 1]) * 10, tf.slice(a, [0, 1], [-1, 1]))

reordered = tf.gather(a, tf.nn.top_k(b[:, 0], k=5, sorted=False).indices)
reordered = tf.reverse(reordered, axis=[0])

with tf.Session() as sess:
result = sess.run(reordered)
print(result)

希望这对您有所帮助。

关于python - 根据 tensorflow 中的两列对张量进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49399198/

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