tf.keras.utils.image_dataset_from_directory
Генерирует tf.data.Dataset из файлов изображений в каталоге.
tf.keras.utils.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,
**kwargs
)
Если структура вашего каталога:
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, 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". Используется только если validation_split задано. |
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) соотношение сторон может не сохраняться. |
**kwargs | Аргументы устаревшего ключевого слова. |
| Возвращаемое значение | |
|---|---|
Объект tf.data.Dataset.
|
Правила по формату меток:
- если
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/versions/r2.9/api_docs/python/tf/keras/utils/image_dataset_from_directory