Spec-Zone.ru › TensorFlow

tf.compat.v1.train.shuffle_batch

Создает пакеты, случайным образом перемешивая тензоры. (устарела)

tf.compat.v1.train.shuffle_batch(
    tensors,
    batch_size,
    capacity,
    min_after_dequeue,
    num_threads=1,
    seed=None,
    enqueue_many=False,
    shapes=None,
    allow_smaller_final_batch=False,
    shared_name=None,
    name=None
)
Устарела: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: конвейеры ввода на основе очередей заменены на tf.data. Используйте tf.data.Dataset.shuffle(min_after_dequeue).batch(batch_size).

Эта функция добавляет в текущий Graph следующие элементы:

  • Очередь с перемешиванием, в которую помещаются тензоры из tensors.
  • Операцию dequeue_many для создания пакетов из очереди.
  • QueueRunner в коллекцию QUEUE_RUNNER для помещения тензоров из tensors в очередь.

Если enqueue_many имеет значение False, считается, что tensors представляет один пример. Входной тензор с формой [x, y, z] будет выведен как тензор с формой [batch_size, x, y, z].

Если enqueue_many имеет значение True, считается, что tensors представляет пакет примеров, в котором первая размерность индексируется по примерам, а все элементы tensors должны иметь одинаковый размер по первой размерности. Если входной тензор имеет форму [*, x, y, z], выходной тензор будет иметь форму [batch_size, x, y, z].

Аргумент capacity определяет, насколько долго предварительная загрузка может увеличивать размер очередей.

Возвращенная операция извлекает элементы из очереди и вызовет исключение tf.errors.OutOfRangeError, если входная очередь исчерпана. Если эта операция передает данные в другую входную очередь, ее обработчик очереди перехватит это исключение. Однако если эта операция используется в основном потоке, вы должны самостоятельно перехватить это исключение.

Например:

# Creates batches of 32 images and 32 labels.
image_batch, label_batch = tf.compat.v1.train.shuffle_batch(
      [single_image, single_label],
      batch_size=32,
      num_threads=4,
      capacity=50000,
      min_after_dequeue=10000)
Примечание: Убедитесь, что выполнено одно из следующих условий: (i) передан аргумент shapes или (ii) формы всех тензоров в tensors определены полностью. Если ни одно из этих условий не выполнено, будет вызвано исключение ValueError.

Если allow_smaller_final_batch имеет значение True, при закрытии очереди и недостаточном количестве элементов для заполнения пакета возвращается пакет меньшего размера, чем batch_size; в противном случае оставшиеся элементы отбрасываются. Кроме того, статические формы всех выходных тензоров, доступные через свойство shape, будут иметь значение None в первой размерности Dimension, и операции, зависящие от фиксированного batch_size, завершатся ошибкой.

Аргументы
tensors Список или словарь тензоров для помещения в очередь.
batch_size Новый размер пакета, извлекаемого из очереди.
capacity Целое число. Максимальное количество элементов в очереди.
min_after_dequeue Минимальное количество элементов в очереди после извлечения, используемое для обеспечения перемешивания элементов.
num_threads Количество потоков, помещающих tensor_list в очередь.
seed Начальное значение для случайного перемешивания элементов в очереди.
enqueue_many Является ли каждый тензор в tensor_list отдельным примером.
shapes (Необязательно) Формы каждого примера. По умолчанию используются формы, выведенные для tensor_list.
allow_smaller_final_batch (Необязательно) Логическое значение. Если задано True, последний пакет может быть меньше, если в очереди осталось недостаточно элементов.
shared_name (Необязательно) Если задано, эта очередь будет доступна для совместного использования в нескольких сеансах под указанным именем.
name (Необязательно) Имя операций.
Возвращает
Список или словарь тензоров с типами, соответствующими tensors.
Вызывает исключения
ValueError Если shapes не указаны и не могут быть выведены из элементов tensors.

Совместимость с eager execution

Конвейеры ввода на основе очередей не поддерживаются при включенном eager execution. Для загрузки данных при eager execution используйте API tf.data.

© 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/compat/v1/train/shuffle_batch

Spec-Zone.ru

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