Spec-Zone.ru › TensorFlow 2.9

tf.data.Iterator

Просмотреть исходный код на GitHub

Представляет итератор набора данных tf.data.Dataset.

tf.data.Iterator — это основной механизм для перечисления элементов набора данных tf.data.Dataset. Он поддерживает протокол Python Iterator, что означает, что он может быть перебираем с помощью цикла for:

dataset = tf.data.Dataset.range(2)
for element in dataset:
  print(element)
tf.Tensor(0, shape=(), dtype=int64)
tf.Tensor(1, shape=(), dtype=int64)

или путём явного получения отдельных элементов с помощью get_next():

dataset = tf.data.Dataset.range(2)
iterator = iter(dataset)
print(iterator.get_next())
tf.Tensor(0, shape=(), dtype=int64)
print(iterator.get_next())
tf.Tensor(1, shape=(), dtype=int64)

Кроме того, поддерживается итерация без исключений с помощью get_next_as_optional(), которая возвращает следующий элемент (если он доступен) в обёртке tf.experimental.Optional.

dataset = tf.data.Dataset.from_tensors(42)
iterator = iter(dataset)
optional = iterator.get_next_as_optional()
print(optional.has_value())
tf.Tensor(True, shape=(), dtype=bool)
optional = iterator.get_next_as_optional()
print(optional.has_value())
tf.Tensor(False, shape=(), dtype=bool)
Атрибуты
element_spec Спецификация типа элемента этого итератора.
dataset = tf.data.Dataset.from_tensors(42)
iterator = iter(dataset)
iterator.element_spec
tf.TensorSpec(shape=(), dtype=tf.int32, name=None)

Для получения дополнительной информации ознакомьтесь с этим руководством.

Методы

get_next

Просмотреть исходный код

@abc.abstractmethod
get_next()

Возвращает следующий элемент.

dataset = tf.data.Dataset.from_tensors(42)
iterator = iter(dataset)
print(iterator.get_next())
tf.Tensor(42, shape=(), dtype=int32)
Возвращает
(Вложенную) структуру значений, соответствующую tf.data.Iterator.element_spec.
Исключения
tf.errors.OutOfRangeError: Если конец итератора достигнут.

get_next_as_optional

Просмотреть исходный код

@abc.abstractmethod
get_next_as_optional()

Возвращает следующий элемент, заключённый в tf.experimental.Optional.

Если итератор достиг конца последовательности, возвращаемый tf.experimental.Optional не будет содержать значения.

dataset = tf.data.Dataset.from_tensors(42)
iterator = iter(dataset)
optional = iterator.get_next_as_optional()
print(optional.has_value())
tf.Tensor(True, shape=(), dtype=bool)
print(optional.get_value())
tf.Tensor(42, shape=(), dtype=int32)
optional = iterator.get_next_as_optional()
print(optional.has_value())
tf.Tensor(False, shape=(), dtype=bool)
Возвращает
Объект tf.experimental.Optional, представляющий следующий элемент.

__iter__

__iter__()

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/data/Iterator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API