Spec-Zone.ru › TensorFlow 2.9

tf.keras.utils.image_dataset_from_directory

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

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

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

tf.keras.preprocessing.image_dataset_from_directory

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. Варианты:
  • '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". Используется только если 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 равно 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/versions/r2.9/api_docs/python/tf/keras/utils/image_dataset_from_directory

Spec-Zone.ru

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