tf.train.batch_join
Выполняет список тензоров для заполнения очереди, чтобы создать пакеты примеров. (устаревший)
tf.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
)
Аргумент tensors_list представляет собой список кортежей тензоров или список словарей тензоров. Каждый элемент в списке обрабатывается аналогично аргументу tensors функции tf.compat.v1.train.batch().
В разные потоки помещаются разные списки тензоров. Реализовано с использованием очереди — QueueRunner для очереди добавляется в текущую Graph в коллекцию QUEUE_RUNNER.
Будут запущены 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, будут иметь первое значение Dimension равное None, и операции, зависящие от фиксированного 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
Конвейеры ввода данных, основанные на очередях, не поддерживаются при включенном исполнении eager. Пожалуйста, используйте API tf.data для ввода данных при включенном eager исполнении.
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/train/batch_join