РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
473 of 824 menu

Метод from_tensors

Метод from_tensors класса Dataset создает датасет из переданных тензоров. Первым параметром метод принимает тензор или кортеж тензоров. Особенность метода в том, что весь переданный тензор становится одним элементом датасета, а не разбивается на отдельные элементы, как это делает метод from_tensor_slices. Вторым необязательным параметром можно передать имя для датасета.

Синтаксис

tf.data.Dataset.from_tensors(tensors, [name])

Пример

Давайте создадим датасет из одного тензора и посмотрим на его содержимое:

import tensorflow as tf t = tf.constant([1, 2, 3, 4, 5]) ds = tf.data.Dataset.from_tensors(t) for elem in ds: print(elem)

Результат выполнения кода:

tf.Tensor([1 2 3 4 5], shape=(5,), dtype=int32)

Как видим, весь тензор целиком стал единственным элементом датасета.

Пример

Давайте создадим датасет из кортежа двух тензоров:

import tensorflow as tf t1 = tf.constant([1, 2, 3]) t2 = tf.constant([4, 5, 6]) ds = tf.data.Dataset.from_tensors((t1, t2)) for elem in ds: print(elem)

Результат выполнения кода:

(<tf.Tensor: shape=(3,), dtype=int32, numpy=array([1, 2, 3], dtype=int32)>, <tf.Tensor: shape=(3,), dtype=int32, numpy=array([4, 5, 6], dtype=int32)>)

Каждый элемент датасета представляет собой кортеж из двух тензоров.

Пример

Давайте создадим датасет из двумерного тензора:

import tensorflow as tf t = tf.constant([[1, 2, 3], [4, 5, 6]]) ds = tf.data.Dataset.from_tensors(t) for elem in ds: print(elem)

Результат выполнения кода:

tf.Tensor( [[1 2 3] [4 5 6]], shape=(2, 3), dtype=int32)

Двумерный тензор также стал одним элементом датасета.

Пример

Давайте сравним поведение методов from_tensors и from_tensor_slices на одном и том же тензоре:

import tensorflow as tf t = tf.constant([1, 2, 3, 4, 5]) ds_tensors = tf.data.Dataset.from_tensors(t) ds_slices = tf.data.Dataset.from_tensor_slices(t) print("from_tensors:") for elem in ds_tensors: print(elem) print("from_tensor_slices:") for elem in ds_slices: print(elem)

Результат выполнения кода:

from_tensors: tf.Tensor([1 2 3 4 5], shape=(5,), dtype=int32) from_tensor_slices: tf.Tensor(1, shape=(), dtype=int32) tf.Tensor(2, shape=(), dtype=int32) tf.Tensor(3, shape=(), dtype=int32) tf.Tensor(4, shape=(), dtype=int32) tf.Tensor(5, shape=(), dtype=int32)

Метод from_tensors создал один элемент, а метод from_tensor_slices разбил тензор на пять элементов.

Пример

Давайте создадим датасет с именем и проверим его размер:

import tensorflow as tf t = tf.constant([1, 2, 3, 4, 5]) ds = tf.data.Dataset.from_tensors(t, name="my_dataset") print(ds.cardinality().numpy())

Результат выполнения кода:

1

Датасет всегда содержит ровно один элемент, независимо от размера переданного тензора.

Смотрите также

  • класс Dataset,
    который представляет собой набор элементов
  • метод from_tensor_slices,
    который разбивает тензор на отдельные элементы
  • метод from_generator,
    который создает датасет из генератора
  • метод range,
    который создает датасет из диапазона чисел
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить