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 |
|
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равно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.3/api_docs/python/tf/keras/preprocessing/text_dataset_from_directory