Функция bincount
Функция bincount подсчитывает, сколько раз каждое значение встречается во входном тензоре. Первым параметром функция принимает целочисленный тензор с неотрицательными значениями. Вторым параметром можно передать тензор весов, значения которого суммируются вместо простого подсчета. Третьим параметром задается минимальная длина выходного тензора. Результатом является одномерный тензор длины, равной максимальному значению во входных данных плюс один.
Синтаксис
tf.math.bincount(arr, [weights], [minlength], [maxlength], [dtype])
Пример
Давайте подсчитаем количество вхождений каждого значения в тензоре:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5, 1, 2, 3, 1, 2, 1])
res = tf.math.bincount(t)
print(res)
Результат выполнения кода:
tf.Tensor([0 4 3 2 1 1], shape=(6,), dtype=int32)
Пример
Давайте передадим тензор весов, чтобы суммировать веса вместо подсчета количества:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5, 1, 2, 3, 1, 2, 1])
w = tf.constant([0.5, 0.3, 0.2, 0.1, 0.4, 0.6, 0.7, 0.8, 0.9, 0.1, 0.2])
res = tf.math.bincount(t, weights=w)
print(res)
Результат выполнения кода:
tf.Tensor([0. 2.2 1.1 1. 0.1 0.4], shape=(6,), dtype=float32)
Пример
Давайте зададим минимальную длину выходного тензора через параметр minlength:
Результат выполнения кода:
tf.Tensor([0 4 3 2 1 1 0 0], shape=(8,), dtype=int32)
Смотрите также
-
функцию
segment_sum,
которая суммирует элементы по сегментам тензора -
функцию
unsorted_segment_sum,
которая суммирует элементы по неотсортированным сегментам -
функцию
cumsum,
которая вычисляет кумулятивную сумму элементов тензора -
функцию
reduce_sum,
которая вычисляет сумму элементов тензора