tf.nn.top_k can help us to sort elements in tensor from largest to smallest, however, how to sort it from smallest to largest?
In this tutorial, we edit sort example code previous tutorial and enhance this sort functionality.
Here is example code:
import tensorflow as tf; import numpy as np; #create a tensor data=tf.Variable(tf.random_uniform([10,7], -0.1, 0.1)) #define a function to sort a tensor #reverse = False, from largest to smallest #reverse = True, from smallest to largest def sort(tensor, reverse = False): shape = tf.shape(tensor) rank = tf.rank(tensor) k_n = shape[rank-1] t_v, t_i = tf.nn.top_k(tensor,k=k_n,sorted=True,name=None) if reverse: rank = tf.rank(t_v) t_v = tf.reverse(t_v, axis=[rank-1]) return t_v sort_data = sort(data,True) init = tf.global_variables_initializer() init_local = tf.local_variables_initializer() with tf.Session() as sess: sess.run([init, init_local]) np.set_printoptions(precision=4, suppress=True) s= (sess.run([sort_data])) print s
The result is:
How to use this code?
sort_data = sort(data,True) sort_data_2 = sort(data)