Метод cardinality класса Dataset
Метод cardinality класса Dataset возвращает количество элементов в наборе данных.
Этот метод не принимает обязательных параметров, однако может быть вызван без аргументов для получения общего числа элементов.
Возвращаемое значение имеет тип int64 и представляет собой скалярный тензор.
Если количество элементов в датасете неизвестно (например, при использовании генераторов),
метод вернет значение tf.data.UNKNOWN_CARDINALITY, которое равно -1.
В случае бесконечного датасета возвращается tf.data.INFINITE_CARDINALITY, равное -2.
Синтаксис
dataset.cardinality()
Пример
Давайте создадим простой датасет из тензора и определим его размер:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
dataset = tf.data.Dataset.from_tensor_slices(t)
res = dataset.cardinality()
print(res)
Результат выполнения кода:
tf.Tensor(5, shape=(), dtype=int64)
Пример
Давайте применим метод batch к датасету и проверим, как изменится количество элементов:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
dataset = tf.data.Dataset.from_tensor_slices(t).batch(2)
res = dataset.cardinality()
print(res)
Результат выполнения кода:
tf.Tensor(3, shape=(), dtype=int64)
Пример
Давайте создадим датасет с помощью метода range и узнаем его размер:
import tensorflow as tf
dataset = tf.data.Dataset.range(10)
res = dataset.cardinality()
print(res)
Результат выполнения кода:
tf.Tensor(10, shape=(), dtype=int64)
Смотрите также
-
класс
Dataset,
который представляет собой набор данных -
метод
from_tensor_slices,
который создает датасет из тензора -
метод
batch,
который объединяет элементы в пакеты -
метод
range,
который создает датасет из диапазона чисел