Spec-Zone.ru › TensorFlow

tf.keras.preprocessing.image_dataset_from_directory

Создает tf.data.Dataset из файлов изображений в каталоге.

Просмотреть псевдонимы

Основные псевдонимы

tf.keras.utils.image_dataset_from_directory

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
)

Используется в блокнотах

Используется в учебных руководствах
  • Классификация изображений
  • Перенос обучения и тонкая настройка
  • Перенос обучения с TensorFlow Hub
  • Загрузка и предварительная обработка изображений
  • Повторное обучение классификатора изображений

Если структура каталогов выглядит так:

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. Доступны следующие варианты:
  • "int": метки кодируются как целые числа (например, для функции потерь sparse_categorical_crossentropy).
  • "categorical": метки кодируются как категориальный вектор (например, для функции потерь categorical_crossentropy).
  • "binary": метки (их может быть только 2) кодируются как скаляры float32 со значениями 0 или 1 (например, для binary_crossentropy).
  • None (без меток).
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 из единиц и нулей формы (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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API