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
)
Аргумент 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 является истинным.
Если enqueue_many является False, каждый tensors_list[i] предполагается, что представляет собой отдельный пример. Входной тензор x будет выведен как тензор с формой [batch_size] + x.shape.
Если enqueue_many является True, tensors_list[i] предполагается, что представляет собой пакет примеров, где первое измерение индексируется по примеру, и все члены tensors_list[i] должны иметь одинаковый размер в первом измерении. Сlices любого входного тензора 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, потерпят неудачу.
| Args | |
|---|---|
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/r2.3/api_docs/python/tf/compat/v1/train/batch_join