Missed TensorFlow Dev Summit? Check out the video playlist. Watch recordings

tf.compat.v2.math.bincount

View source on GitHub

Counts the number of occurrences of each value in an integer array.

tf.compat.v2.math.bincount(
    arr,
    weights=None,
    minlength=None,
    maxlength=None,
    dtype=tf.dtypes.int32,
    name=None
)

If minlength and maxlength are not given, returns a vector with length tf.reduce_max(arr) + 1 if arr is non-empty, and length 0 otherwise. If weights are non-None, then index i of the output stores the sum of the value in weights at each index where the corresponding value in arr is i.

values = tf.constant([1,1,2,3,2,4,4,5])
tf.math.bincount(values) #[0 2 2 1 2 1]

Vector length = Maximum element in vector values is 5. Adding 1, which is 6 will be the vector length.

Each bin value in the output indicates number of occurrences of the particular index. Here, index 1 in output has a value 2. This indicates value 1 occurs two times in values.

values = tf.constant([1,1,2,3,2,4,4,5])
weights = tf.constant([1,5,0,1,0,5,4,5])
tf.math.bincount(values, weights=weights) #[0 6 0 1 9 5]

Bin will be incremented by the corresponding weight instead of 1. Here, index 1 in output has a value 6. This is the summation of weights corresponding to the value in values.

Args:

  • arr: An int32 tensor of non-negative values.
  • weights: If non-None, must be the same shape as arr. For each value in arr, the bin will be incremented by the corresponding weight instead of 1.
  • minlength: If given, ensures the output has length at least minlength, padding with zeros at the end if necessary.
  • maxlength: If given, skips values in arr that are equal or greater than maxlength, ensuring that the output has length at most maxlength.
  • dtype: If weights is None, determines the type of the output bins.
  • name: A name scope for the associated operations (optional).

Returns:

A vector with the same dtype as weights or the given dtype. The bin values.

Raises:

InvalidArgumentError if negative values are provided as an input.