Метод zip класса Dataset
Метод zip класса Dataset объединяет
элементы нескольких датасетов в один датасет,
элементами которого являются кортежи.
Метод принимает один или несколько датасетов,
которые нужно объединить с текущим.
Количество элементов результирующего датасета
равно минимальному количеству элементов
среди всех переданных датасетов.
Синтаксис
dataset.zip(*datasets)
Пример
Давайте создадим два датасета и объединим их
с помощью метода zip:
import tensorflow as tf
ds1 = tf.data.Dataset.from_tensor_slices([1, 2, 3])
ds2 = tf.data.Dataset.from_tensor_slices([4, 5, 6])
ds = ds1.zip(ds2)
for element in ds:
print(element)
Результат выполнения кода:
(<tf.Tensor: shape=(), dtype=int32, numpy=1>, <tf.Tensor: shape=(), dtype=int32, numpy=4>)
(<tf.Tensor: shape=(), dtype=int32, numpy=2>, <tf.Tensor: shape=(), dtype=int32, numpy=5>)
(<tf.Tensor: shape=(), dtype=int32, numpy=3>, <tf.Tensor: shape=(), dtype=int32, numpy=6>)
Пример
Давайте объединим три датасета:
<+python+>
import tensorflow as tf
ds1 = tf.data.Dataset.from_tensor_slices([1, 2, 3])
ds2 = tf.data.Dataset.from_tensor_slices([4, 5, 6])
ds3 = tf.data.Dataset.from_tensor_slices([7, 8, 9])
ds = ds1.zip(ds2, ds3)
for element in ds:
print(element)
<-python+>
Результат выполнения кода:
<+python+>
(, , )
(, , )
(, , )
<-python+>
Пример
Давайте объединим датасеты с разным количеством элементов:
<+python+>
import tensorflow as tf
ds1 = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4, 5])
ds2 = tf.data.Dataset.from_tensor_slices([6, 7, 8])
ds = ds1.zip(ds2)
for element in ds:
print(element)
<-python+>
Результат выполнения кода:
<+python+>
(, )
(, )
(, )
<-python+>
Пример
Давайте объединим датасеты и применим метод
batch:
<+python+>
import tensorflow as tf
ds1 = tf.data.Dataset.from_tensor_slices([1, 2, 3, 4])
ds2 = tf.data.Dataset.from_tensor_slices([5, 6, 7, 8])
ds = ds1.zip(ds2).batch(2)
for element in ds:
print(element)
<-python+>
Результат выполнения кода:
<+python+>
(, )
(, )
<-python+>
Смотрите также
-
класс
Dataset,
который представляет набор данных -
метод
from_tensor_slices,
который создает датасет из тензоров -
метод
batch,
который объединяет элементы в пакеты -
метод
concatenate,
который объединяет датасеты последовательно