tf.keras.preprocessing.image_dataset_from_directory
Создаёт набор данных tf.data.Dataset из файлов изображений в директории.
tf.keras.preprocessing.image_dataset_from_directory(
directory,
labels='inferred',
label_mode='int',
class_names=None,
color_mode='rgb',
batch_size=32,
image_size=(256, 256),
shuffle=True,
seed=None,
validation_split=None,
subset=None,
interpolation='bilinear',
follow_links=False,
crop_to_aspect_ratio=False,
pad_to_aspect_ratio=False,
data_format=None,
verbose=True
)
Используется в блокнотах
| Используется в учебниках |
|---|
Если структура вашей директории выглядит следующим образом:
main_directory/ ...class_a/ ......a_image_1.jpg ......a_image_2.jpg ...class_b/ ......b_image_1.jpg ......b_image_2.jpg
Тогда вызов image_dataset_from_directory(main_directory, labels='inferred') вернёт набор данных tf.data.Dataset, который возвращает пакеты изображений из поддиректорий class_a и class_b, вместе с метками 0 и 1 (0 соответствует class_a, а 1 соответствует class_b).
Поддерживаемые форматы изображений: .jpeg, .jpg, .png, .bmp, .gif. Анимированные GIF-изображения обрезаются до первого кадра.
| Аргументы | |
|---|---|
directory | Директория, в которой расположены данные. Если labels равен "inferred", она должна содержать поддиректории, каждая из которых содержит изображения для класса. В противном случае структура директорий игнорируется. |
labels | Либо "inferred" (метки генерируются из структуры директорий), либо None (без меток), либо список/кортеж целочисленных меток того же размера, что и количество файлов изображений, найденных в директории. Метки должны быть отсортированы в соответствии с алфавитно-цифровым порядком путей к файлам изображений (полученными с помощью os.walk(directory) в Python). |
label_mode | Строка, описывающая кодировку labels. Доступные варианты:
|
class_names | Только если labels равно "inferred". Это явный список имён классов (должен совпадать с именами поддиректорий). Используется для управления порядком классов (в противном случае используется алфавитно-цифровой порядок). |
color_mode | Один из "grayscale", "rgb", "rgba". По умолчанию "rgb". Определяет, будут ли изображения преобразованы для получения 1, 3 или 4 каналов. |
batch_size | Размер пакетов данных. По умолчанию 32. Если None, данные не будут сгруппированы в пакеты (набор данных будет возвращать отдельные образцы). |
image_size | Размер, до которого будут изменены изображения после их чтения с диска, заданный как (height, width). По умолчанию (256, 256). Поскольку конвейер обрабатывает пакеты изображений, которые должны иметь одинаковый размер, это значение должно быть предоставлено. |
shuffle | Нужно ли перемешивать данные. По умолчанию True. Если установлено в False, данные сортируются в алфавитно-цифровом порядке. |
seed | Необязательное случайное семя для перемешивания и преобразований. |
validation_split | Необязательное число с плавающей запятой от 0 до 1, доля данных, которые необходимо зарезервировать для проверки. |
subset | Подмножество данных для возврата. Один из "training", "validation" или "both". Используется только если validation_split установлено. Если subset="both", утилита возвращает кортеж из двух наборов данных (тренировочные и проверочные наборы данных соответственно). |
interpolation | Строка, метод интерполяции, используемый при изменении размера изображений. По умолчанию "bilinear". Поддерживает "bilinear", "nearest", "bicubic", "area", "lanczos3", "lanczos5", "gaussian", "mitchellcubic". |
follow_links | Нужно ли посещать поддиректории, на которые указывают символические ссылки. По умолчанию False. |
crop_to_aspect_ratio | Если True, изменяет размер изображений без искажения соотношения сторон. Если исходное соотношение сторон отличается от целевого соотношения сторон, выходное изображение будет обрезано так, чтобы вернуть наибольшее возможное окно в изображении (размером image_size), которое соответствует целевому соотношению сторон. По умолчанию (crop_to_aspect_ratio=False), соотношение сторон может не сохраняться. |
pad_to_aspect_ratio | Если True, изменяет размер изображений без искажения соотношения сторон. Если исходное соотношение сторон отличается от целевого соотношения сторон, выходное изображение будет дополнено так, чтобы вернуть наибольшее возможное окно в изображении (размером image_size), которое соответствует целевому соотношению сторон. По умолчанию (pad_to_aspect_ratio=False), соотношение сторон может не сохраняться. |
data_format | Если None, использует keras.config.image_data_format(), иначе либо 'channel_last', либо 'channel_first'. |
verbose | Нужно ли отображать информацию о количестве классов и количестве найденных файлов. По умолчанию True. |
| Возвращает |
|---|
Объект tf.data.Dataset.
- Если
label_modeравноNone, он возвращаетfloat32тензоры формы(batch_size, image_size[0], image_size[1], num_channels), кодирующие изображения (правила, касающиесяnum_channels, см. ниже). - В противном случае он возвращает кортеж
(images, labels), гдеimagesимеет форму(batch_size, image_size[0], image_size[1], num_channels), аlabelsследует формату, описанному ниже.
Правила относительно формата меток:
- Если
label_modeравно"int", метки — этоint32тензор формы(batch_size,). - Если
label_modeравно"binary", метки — этоfloat32тензор из 1 и 0 формы(batch_size, 1). - Если
label_modeравно"categorical", метки — этоfloat32тензор формы(batch_size, num_classes), представляющий одно-горячее кодирование индекса класса.
Правила относительно количества каналов на возвращаемых изображениях:
- Если
color_modeравно"grayscale", в тензорах изображений есть 1 канал. - Если
color_modeравно"rgb", в тензорах изображений есть 3 канала. - Если
color_modeравно"rgba", в тензорах изображений есть 4 канала.
© 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/api_docs/python/tf/keras/preprocessing/image_dataset_from_directory