Spec-Zone.ru › TensorFlow

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.

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

Если 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, будут иметь значение None для первой Dimension, а операции, зависящие от фиксированного batch_size, завершатся с ошибкой.

Аргументы
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 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/batch

Spec-Zone.ru

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