Spec-Zone.ru › TensorFlow 2.4

tf.keras.preprocessing.text_dataset_from_directory

Генерирует tf.data.Dataset из текстовых файлов в директории.

tf.keras.preprocessing.text_dataset_from_directory(
    directory, labels='inferred', label_mode='int',
    class_names=None, batch_size=32, max_length=None, shuffle=True, seed=None,
    validation_split=None, subset=None, follow_links=False
)

Если структура вашей директории:

main_directory/
...class_a/
......a_text_1.txt
......a_text_2.txt
...class_b/
......b_text_1.txt
......b_text_2.txt

Тогда вызов text_dataset_from_directory(main_directory, labels='inferred') вернёт tf.data.Dataset, который выдаёт пакеты текстов из поддиректорий class_a и class_b, вместе с метками 0 и 1 (0 соответствует class_a и 1 соответствует class_b).

В настоящее время поддерживаются только .txt файлы.

Аргументы
directory Директория, где расположены данные. Если labels равно "inferred", она должна содержать поддиректории, каждая из которых содержит текстовые файлы для класса. В противном случае структура директорий игнорируется.
labels Либо "inferred" (метки генерируются из структуры директории), либо список/кортеж целочисленных меток того же размера, что и количество текстовых файлов, найденных в директории. Метки должны быть отсортированы в соответствии с алфавитно-цифровым порядком путей к текстовым файлам (полученных с помощью os.walk(directory) в Python).
label_mode
  • 'int': означает, что метки закодированы как целые числа (например, для sparse_categorical_crossentropy функции потерь).
  • 'categorical': означает, что метки закодированы как категорический вектор (например, для categorical_crossentropy функции потерь).
  • 'binary': означает, что метки (их может быть только 2) закодированы как float32 скаляры со значениями 0 или 1 (например, для binary_crossentropy).
  • None (без меток).
class_names Действительно только если "labels" равно "inferred". Это явный список имён классов (должен совпадать с именами поддиректорий). Используется для управления порядком классов (в противном случае используется алфавитно-цифровой порядок).
batch_size Размер пакетов данных. По умолчанию: 32.
max_length Максимальный размер текстовой строки. Тексты, превышающие этот размер, будут усечены до max_length.
shuffle Нужно ли перемешивать данные. По умолчанию: True. Если установлено в False, данные сортируются в алфавитно-цифровом порядке.
seed Необязательное случайное семя для перемешивания и преобразований.
validation_split Необязательное число с плавающей точкой от 0 до 1, доля данных для резервирования для валидации.
subset Одно из "training" или "validation". Используется только если validation_split установлено.
follow_links Нужно ли посещать поддиректории, указанные символьными ссылками. По умолчанию False.
Возвращает
Объект tf.data.Dataset.
  • Если label_mode равно None, он возвращает string тензоры формы (batch_size,), содержащие содержимое пакета текстовых файлов.
  • В противном случае, он возвращает кортеж (texts, labels), где texts имеет форму (batch_size,), и labels соответствует формату, описанному ниже.

Правила относительно формата меток:

  • Если label_mode равно int, метки являются int32 тензором формы (batch_size,).
  • Если label_mode равно binary, метки являются float32 тензором из 1 и 0 с формой (batch_size, 1).
  • Если label_mode равно categorial, метки являются float32 тензором формы (batch_size, num_classes), представляющим одно-горячее кодирование индекса класса.

© 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/text_dataset_from_directory

Spec-Zone.ru

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