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,
verbose=True
)
Используется в блокнотах
| Используется в руководствах |
|---|
Если структура каталогов имеет следующий вид:
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" (метки формируются на основе структуры каталогов), None (без меток), либо список/кортеж целочисленных меток, размер которого равен количеству текстовых файлов, найденных в каталоге. Метки должны быть отсортированы в алфавитно-цифровом порядке путей к текстовым файлам (полученном с помощью os.walk(directory) в Python). |
label_mode | Строка, описывающая кодировку labels. Возможные значения:
|
class_names | Допустимо только в том случае, если "labels" имеет значение "inferred". Явный список имен классов (должен совпадать с именами подкаталогов). Используется для управления порядком классов (в противном случае применяется алфавитно-цифровая сортировка). |
batch_size | Размер пакетов данных. По умолчанию равен 32. Если задано значение None, данные не будут разбиты на пакеты (набор данных будет выдавать отдельные примеры). |
max_length | Максимальная длина текстовой строки. Тексты, превышающие это значение, будут усечены до max_length. |
shuffle | Нужно ли перемешивать данные. По умолчанию задано значение True. Если установлено значение False, данные сортируются в алфавитно-цифровом порядке. |
seed | Необязательное начальное значение генератора случайных чисел для перемешивания и преобразований. |
validation_split | Необязательное число с плавающей запятой от 0 до 1, задающее долю данных, резервируемую для проверки. |
subset | Подмножество данных, которое нужно вернуть. Одно из значений: "training", "validation" или "both". Используется только в том случае, если задано validation_split. При значении subset="both" функция возвращает кортеж из двух наборов данных (соответственно, обучающего и проверочного). |
follow_links | Нужно ли переходить в подкаталоги, на которые указывают символические ссылки. По умолчанию задано значение False. |
verbose | Нужно ли отображать сведения о количестве классов и найденных файлов. По умолчанию задано значение True. |
| Возвращает |
|---|
Объект 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из единиц и нулей формы(batch_size, 1). - если
label_modeимеет значениеcategorical, метки представляют собой тензорfloat32формы(batch_size, num_classes), содержащий унитарное кодирование индекса класса.
© 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/text_dataset_from_directory