tf.unique_with_counts(x, out_idx=None, name=None)

tf.unique_with_counts(x, out_idx=None, name=None)

See the guide: Tensor Transformations > Slicing and Joining

Finds unique elements in a 1-D tensor.

This operation returns a tensor y containing all of the unique elements of x sorted in the same order that they occur in x. This operation also returns a tensor idx the same size as x that contains the index of each value of x in the unique output y. Finally, it returns a third tensor count that contains the count of each element of y in x. In other words:

y[idx[i]] = x[i] for i in [0, 1,...,rank(x) - 1]

For example:

# tensor 'x' is [1, 1, 2, 4, 4, 4, 7, 8, 8]
y, idx, count = unique_with_counts(x)
y ==> [1, 2, 4, 7, 8]
idx ==> [0, 0, 1, 2, 2, 2, 3, 4, 4]
count ==> [2, 1, 3, 1, 2]

Args:

  • x: A Tensor. 1-D.
  • out_idx: An optional tf.DType from: tf.int32, tf.int64. Defaults to tf.int32.
  • name: A name for the operation (optional).

Returns:

A tuple of Tensor objects (y, idx, count). * y: A Tensor. Has the same type as x. 1-D. * idx: A Tensor of type out_idx. 1-D. * count: A Tensor of type out_idx. 1-D.

Defined in tensorflow/python/ops/gen_array_ops.py.