Метод as_numpy_iterator
Метод as_numpy_iterator применяется к объекту
Dataset и возвращает итератор, элементы которого
являются NumPy-массивами, а не тензорами TensorFlow.
Метод не принимает параметров. Его удобно использовать
для извлечения данных из датасета и дальнейшей работы
с ними средствами NumPy, а также для отладки и визуализации.
Синтаксис
dataset.as_numpy_iterator()
Пример
Давайте создадим датасет из одномерного тензора и получим его элементы в виде NumPy-массивов:
import tensorflow as tf
dataset = tf.data.Dataset.from_tensor_slices(tf.constant([1, 2, 3, 4, 5]))
for element in dataset.as_numpy_iterator():
print(element)
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте проверим тип данных, который выдает итератор:
<+python+>
import tensorflow as tf
dataset = tf.data.Dataset.from_tensor_slices(tf.constant([1, 2, 3, 4, 5]))
it = dataset.as_numpy_iterator()
res = next(it)
print(type(res))
print(res)
<-python+>
Результат выполнения кода:
<class 'numpy.ndarray'>
[1 2 3 4 5]
Пример
Давайте создадим двумерный датасет и извлечем все его элементы в список NumPy-массивов:
import tensorflow as tf
data = tf.constant([[1, 2, 3], [4, 5, 6]])
dataset = tf.data.Dataset.from_tensor_slices(data)
res = list(dataset.as_numpy_iterator())
print(res)
Результат выполнения кода:
[array([1, 2, 3]), array([4, 5, 6])]
Смотрите также
-
класс
Dataset,
который представляет набор данных -
метод
cardinality,
который возвращает количество элементов датасета -
метод
element_spec,
который возвращает спецификацию элементов датасета -
метод
take,
который возвращает первые элементы датасета