gpt4 book ai didi

python - tensorflow 中二维数组最小值到最大值的排序

转载 作者:太空宇宙 更新时间:2023-11-03 15:44:45 26 4
gpt4 key购买 nike

我有一个数组

x1 = tf.Variable([[0.51, 0.52, 0.53, 0.94, 0.35],
[0.32, 0.72, 0.83, 0.74, 0.55],
[0.23, 0.72, 0.63, 0.64, 0.35],
[0.11, 0.02, 0.03, 0.14, 0.15],
[0.01, 0.72, 0.73, 0.04, 0.75]],tf.float32)

我想将每行中的元素从最小到最大排序。有没有这样做的功能?

在此示例中,他们使用 tf.nn.top_k 2d array ,使用这个我可以循环创建最大值到最小值。

def sort(instance):
sorted = []
rows = tf.shape(instance)[0]
col = tf.shape(instance)[1]
for i in range(rows.eval()):
matrix.append([tf.gather(instance[i], tf.nn.top_k(instance[i], k=col.eval()).indices)])
return matrix

是否有类似的方法来查找最小值到最大值或如何反转每行中的数组?

最佳答案

按照@Yaroslav的建议,您可以只使用top_k值。

a = tf.Variable([[0.51, 0.52, 0.53, 0.94, 0.35],
[0.32, 0.72, 0.83, 0.74, 0.55],
[0.23, 0.72, 0.63, 0.64, 0.35],
[0.11, 0.02, 0.03, 0.14, 0.15],
[0.01, 0.72, 0.73, 0.04, 0.75]],tf.float32)

row_size = a.get_shape().as_list()[-1]
top_k = tf.nn.top_k(-a, k=row_size)
sess.run(-top_k.values)

这为我打印

array([[ 0.34999999,  0.50999999,  0.51999998,  0.52999997,  0.94      ],
[ 0.31999999, 0.55000001, 0.72000003, 0.74000001, 0.82999998],
[ 0.23 , 0.34999999, 0.63 , 0.63999999, 0.72000003],
[ 0.02 , 0.03 , 0.11 , 0.14 , 0.15000001],
[ 0.01 , 0.04 , 0.72000003, 0.73000002, 0.75 ]], dtype=float32)

关于python - tensorflow 中二维数组最小值到最大值的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41857602/

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