Функция unique
Функция unique применяется к тензору и
возвращает его уникальные элементы. Первым
параметром передаётся тензор, вторым можно
передать ось, вдоль которой ищутся уникальные
срезы. Функция возвращает кортеж из тензора
уникальных значений и индексов.
Синтаксис
tf.unique(x, [axis])
Пример
Давайте найдём уникальные элементы одномерного тензора:
import tensorflow as tf
t = tf.constant([1, 2, 2, 3, 3, 3, 4, 5, 5])
res = tf.unique(t)
print(res)
Результат выполнения кода:
Unique(y=<tf.Tensor: shape=(5,), dtype=int32, numpy=array([1, 2, 3, 4, 5], dtype=int32)>, idx=<tf.Tensor: shape=(9,), dtype=int32, numpy=array([0, 1, 1, 2, 2, 2, 3, 4, 4], dtype=int32)>)
Пример
Давайте извлечём только уникальные значения из результата:
import tensorflow as tf
t = tf.constant([1, 2, 2, 3, 3, 3, 4, 5, 5])
res = tf.unique(t)
print(res.y)
Результат выполнения кода:
tf.Tensor([1 2 3 4 5], shape=(5,), dtype=int32)
Пример
Давайте найдём уникальные строки двумерного
тензора вдоль оси 0:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [1, 2, 3], [4, 5, 6]])
res = tf.unique(t, axis=0)
print(res.y)
Результат выполнения кода:
tf.Tensor(
[[1 2 3]
[4 5 6]], shape=(2, 3), dtype=int32)
Смотрите также
-
функцию
where,
которая возвращает индексы элементов по условию -
функцию
gather,
которая собирает элементы тензора по индексам -
функцию
boolean_mask,
которая фильтрует тензор по булевой маске -
функцию
slice,
которая извлекает часть тензора