【发布时间】:2017-06-10 23:42:58
【问题描述】:
我有一个数组
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_k2d 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
有没有类似的东西可以找到最小值到最大值或如何反转每行中的数组?
【问题讨论】:
-
-tf.nn.top_k(-a)给你相反的结果 -
你的意思是 tf.gather(-instance[i], tf.nn.top_k(-instance[i], k=col.eval()).indices),我得到类型错误:一元操作数类型错误
-
我猜是因为
top_k返回两个输出,所以只需要否定其中一个
标签: python arrays tensorflow