tf.data.Iterator  |  TensorFlow v2.16.1 (original) (raw)

tf.data.Iterator

Stay organized with collections Save and categorize content based on your preferences.

Represents an iterator of a tf.data.Dataset.

tf.data.Iterator is the primary mechanism for enumerating elements of atf.data.Dataset. It supports the Python Iterator protocol, which means it can be iterated over using a for-loop:

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

or by fetching individual elements explicitly via 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)

In addition, non-raising iteration is supported via get_next_as_optional(), which returns the next element (if available) wrapped in atf.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)

Attributes
element_spec The type specification of an element of this iterator.dataset = tf.data.Dataset.from_tensors(42) iterator = iter(dataset) iterator.element_spec tf.TensorSpec(shape=(), dtype=tf.int32, name=None) For more information, read this guide.

Methods

get_next

View source

@abc.abstractmethod get_next()

Returns the next element.

dataset = tf.data.Dataset.from_tensors(42) iterator = iter(dataset) print(iterator.get_next()) tf.Tensor(42, shape=(), dtype=int32)

Returns
A (nested) structure of values matching tf.data.Iterator.element_spec.
Raises
tf.errors.OutOfRangeError: If the end of the iterator has been reached.

get_next_as_optional

View source

@abc.abstractmethod get_next_as_optional()

Returns the next element wrapped in tf.experimental.Optional.

If the iterator has reached the end of the sequence, the returnedtf.experimental.Optional will have no value.

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)

Returns
A tf.experimental.Optional object representing the next element.

__iter__

__iter__()