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 тензор из 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

Spec-Zone.ru

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