Spec-Zone.ru › TensorFlow 2.4

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
)

Если ваша структура каталогов:

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" (метки генерируются из структуры каталогов), либо список/кортеж целочисленных меток того же размера, что и количество файлов изображений, найденных в каталоге. Метки должны быть отсортированы в соответствии с алфавитно-цифровым порядком путей к файлам изображений (полученных с помощью os.walk(directory) в Python).
label_mode
  • 'int': означает, что метки закодированы как целые числа (например, для sparse_categorical_crossentropy loss).
  • 'categorical' означает, что метки закодированы как категорический вектор (например, для categorical_crossentropy loss).
  • 'binary' означает, что метки (их может быть только 2) закодированы как float32 скаляры со значениями 0 или 1 (например, для binary_crossentropy).
  • None (нет меток).
class_names Действительно только если "labels" равно "inferred". Это явный список имён классов (должен совпадать с именами подкаталогов). Используется для управления порядком классов (иначе используется алфавитно-цифровой порядок).
color_mode Один из "grayscale", "rgb", "rgba". По умолчанию: "rgb". Определяет, будут ли изображения преобразованы в 1, 3 или 4 канала.
batch_size Размер пакетов данных. По умолчанию: 32.
image_size Размер, к которому будут изменены изображения после их считывания с диска. По умолчанию (256, 256). Поскольку pipeline обрабатывает пакеты изображений, которые должны иметь одинаковый размер, этот параметр должен быть задан.
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.
Возвращаемое значение
Объект 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 равно categorial, метки — float32 тензор формы (batch_size, num_classes), представляющий собой кодирование в виде одного горячего вектора индекса класса.

Правила относительно количества каналов на выходе изображений:

  • если color_mode равно grayscale, в тензорах изображений 1 канал.
  • если color_mode равно rgb, в тензорах изображений 3 канала.
  • если color_mode равно rgba, в тензорах изображений 4 канала.

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/preprocessing/image_dataset_from_directory

Spec-Zone.ru

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