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()
Возвращает вложенную структуру tf.Tensor содержащую следующий элемент.
dataset = tf.data.Dataset.from_tensors(42) iterator = iter(dataset) print(iterator.get_next()) tf.Tensor(42, shape=(), dtype=int32)
| Возвращает | |
|---|---|
Вложенная структура объектов tf.Tensor. |
| Возбуждает | |
|---|---|
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__()
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/data/Iterator