tfp.experimental.distributions.marginal_fns.ps.sort

Sorts a tensor.

Usage:

a = [1, 10, 26.9, 2.8, 166.32, 62.3]
tf.sort(a).numpy()
array([  1.  ,   2.8 ,  10.  ,  26.9 ,  62.3 , 166.32], dtype=float32)
tf.sort(a, direction='DESCENDING').numpy()
array([166.32,  62.3 ,  26.9 ,  10.  ,   2.8 ,   1.  ], dtype=float32)

For multidimensional inputs you can control which axis the sort is applied along. The default axis=-1 sorts the innermost axis.

mat = [[3,2,1],
       [2,1,3],
       [1,3,2]]
tf.sort(mat, axis=-1).numpy()
array([[1, 2, 3],
       [1, 2, 3],
       [1, 2, 3]], dtype=int32)
tf.sort(mat, axis=0).numpy()
array([[1, 1, 1],
       [2, 2, 2],
       [3, 3, 3]], dtype=int32)

  • tf.argsort: Like sort, but it returns the sort indices.
  • tf.math.top_k: A partial sort that returns a fixed number of top values and corresponding indices.

values 1-D or higher numeric Tensor.
axis The axis along which to sort. The default is -1, which sorts the last axis.
direction The direction in which to sort the values ('ASCENDING' or 'DESCENDING').
name Optional name for the operation.

A Tensor with the same dtype and shape as values, with the elements sorted along the given axis.

tf.errors.InvalidArgumentError If the values.dtype is not a float or int type.
ValueError If axis is not a constant scalar, or the direction is invalid.