Spec-Zone.ru › TensorFlow 2.9

tf.compat.v1.train.batch

Создаёт пакеты тензоров в tensors. (устарело)

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

Аргумент tensors может быть списком или словарем тензоров. Возвращаемое значение функции будет того же типа, что и tensors.

Эта функция реализована с использованием очереди. QueueRunner для очереди добавляется в текущую Graph коллекцию QUEUE_RUNNER.

Если 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, если входная очередь исчерпана. Если эта операция подаёт данные в другую входную очередь, её обработчик очереди перехватит эту исключение. Однако, если эта операция используется в вашем основном потоке, вы сами должны перехватывать это исключение.

Примечание: Если dynamic_pad равно False, вы должны гарантировать, что либо (i) передан аргумент shapes, либо (ii) все тензоры в tensors должны иметь полностью определённые формы. ValueError будет поднято, если ни одно из этих условий не выполнено.

Если dynamic_pad равно True, достаточно, чтобы ранг тензоров был известен, но отдельные измерения могут иметь форму None. В этом случае для каждого добавления в очередь размеры со значением None могут иметь переменную длину; при декьюинге выходные тензоры будут дополнены справа до максимальной формы тензоров в текущем минипакете. Для чисел это заполнение принимает значение 0. Для строк это заполнение — пустая строка. См. PaddingFIFOQueue для получения более подробной информации.

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

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

совместимость с режимом eager

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

© 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/versions/r2.9/api_docs/python/tf/compat/v1/train/batch

Spec-Zone.ru

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