Spec-Zone.ru › TensorFlow

tf.compat.v1.train.batch_join

Запускает список тензоров для заполнения очереди с целью создания пакетов примеров. (устарела)

tf.compat.v1.train.batch_join(
    tensors_list,
    batch_size,
    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.interleave(...).batch(batch_size) (или padded_batch(...), если dynamic_pad=True).

Аргумент tensors_list — это список кортежей тензоров или список словарей тензоров. Каждый элемент списка обрабатывается аналогично аргументу tensors функции tf.compat.v1.train.batch().

Предупреждение: Эта функция недетерминирована, поскольку для каждого тензора запускает отдельный поток.

Добавляет в очередь разные списки тензоров из разных потоков. Реализована с помощью очереди — QueueRunner для очереди добавляется в коллекцию QUEUE_RUNNER объекта Graph.

Будут запущены потоки len(tensors_list), при этом поток i добавляет в очередь тензоры из tensors_list[i]. tensors_list[i1][j] должны совпадать с tensors_list[i2][j] по типу и форме, за исключением первого измерения, если enqueue_many имеет значение true.

Если enqueue_many равно False, предполагается, что каждый tensors_list[i] представляет один пример. Входной тензор x будет выведен как тензор с формой [batch_size] + x.shape.

Если enqueue_many равно True, предполагается, что tensors_list[i] представляет пакет примеров, где первое измерение индексирует примеры, и все элементы tensors_list[i] должны иметь одинаковый размер по первому измерению. Срезы любого входного тензора x рассматриваются как примеры, а выходные тензоры будут иметь форму [batch_size] + x.shape[1:].

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

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

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

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

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

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

Совместимость с 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_join

Spec-Zone.ru

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