Spec-Zone.ru › TensorFlow

tf.keras.utils.audio_dataset_from_directory

Создает tf.data.Dataset из аудиофайлов в каталоге.

tf.keras.utils.audio_dataset_from_directory(
    directory,
    labels='inferred',
    label_mode='int',
    class_names=None,
    batch_size=32,
    sampling_rate=None,
    output_sequence_length=None,
    ragged=False,
    shuffle=True,
    seed=None,
    validation_split=None,
    subset=None,
    follow_links=False,
    verbose=True
)

Используется в блокнотах

Используется в руководствах
  • Распознавание простых аудиосигналов: распознавание ключевых слов

Если структура каталогов выглядит так:

main_directory/
...class_a/
......a_audio_1.wav
......a_audio_2.wav
...class_b/
......b_audio_1.wav
......b_audio_2.wav

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

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

Аргументы
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". Явный список имен классов (должен соответствовать именам подкаталогов). Используется для управления порядком классов (иначе применяется алфавитно-цифровая сортировка).
batch_size Размер пакетов данных. По умолчанию: 32. Если задано значение None, данные не будут разбиты на пакеты (набор данных будет выдавать отдельные примеры).
sampling_rate Частота дискретизации аудио (в отсчетах в секунду).
output_sequence_length Максимальная длина аудиопоследовательности. Аудиофайлы большей длины будут усечены до output_sequence_length. Если задано значение None, все последовательности в одном пакете будут дополнены до длины самой длинной последовательности в пакете.
ragged Нужно ли возвращать набор данных Ragged (в котором у каждой последовательности своя длина). По умолчанию — False.
shuffle Нужно ли перемешивать данные. По умолчанию — True. Если задано значение False, данные сортируются в алфавитно-цифровом порядке.
seed Необязательное начальное значение генератора случайных чисел для перемешивания и преобразований.
validation_split Необязательное число с плавающей запятой от 0 до 1, задающее долю данных, резервируемую для проверки.
subset Подмножество возвращаемых данных. Одно из значений: "training", "validation" или "both". Используется, только если задано validation_split.
follow_links Нужно ли переходить в подкаталоги, на которые указывают символические ссылки. По умолчанию — False.
verbose Нужно ли отображать сведения о количестве классов и найденных файлах. По умолчанию — True.
Возвращает

Объект tf.data.Dataset.

  • Если label_mode имеет значение None, он выдает тензоры string формы (batch_size,), содержащие данные пакета аудиофайлов.
  • В противном случае он выдает кортеж (audio, labels), где audio имеет форму (batch_size, sequence_length, num_channels), а 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/utils/audio_dataset_from_directory

Spec-Zone.ru

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