Метод list_files
Метод list_files класса Dataset создает датасет,
элементами которого являются пути к файлам, найденным
по заданному шаблону. Первым параметром метод принимает
шаблон пути или список шаблонов. Вторым параметром можно
передать перемешивание файлов, третьим - зерно
генератора случайных чисел. Метод удобно использовать
для загрузки изображений, текстовых и других файлов
из директорий.
Синтаксис
tf.data.Dataset.list_files(file_pattern, [shuffle], [seed])
Пример
Давайте создадим датасет из списка файлов по шаблону:
import tensorflow as tf
ds = tf.data.Dataset.list_files('*.keras')
for path in ds.take(5):
print(path.numpy())
Результат выполнения кода:
b'model.keras'
Пример
Давайте передадим список шаблонов и отключим перемешивание:
import tensorflow as tf
ds = tf.data.Dataset.list_files(['*.keras', '*.h5'], shuffle=False)
for path in ds:
print(path.numpy())
Результат выполнения кода:
b'model.keras'
b'weights.h5'
Пример
Давайте зафиксируем зерно генератора случайных чисел для воспроизводимого перемешивания:
import tensorflow as tf
tf.random.set_seed(0)
ds = tf.data.Dataset.list_files('*.keras', seed=0)
for path in ds:
print(path.numpy())
Результат выполнения кода:
b'model.keras'
Пример
Давайте применим метод map для загрузки
содержимого файлов:
import tensorflow as tf
def load_file(path):
return tf.io.read_file(path)
ds = tf.data.Dataset.list_files('*.keras', shuffle=False)
ds = ds.map(load_file)
for content in ds:
print(content.numpy()[:4])
Результат выполнения кода:
b'\x89HDF'
Смотрите также
-
класс
Dataset,
который представляет набор данных -
метод
from_tensor_slices,
который создает датасет из срезов тензора -
метод
map,
который применяет функцию к каждому элементу -
метод
interleave,
который чередует элементы нескольких датасетов