Spec-Zone.ru › TensorFlow

tf.raw_ops.BatchFunction

Объединяет все входные тензоры в пакеты для вычисления, выполняемого функцией.

Просмотреть псевдонимы

Псевдонимы совместимости для миграции

Подробнее см. в руководстве по миграции.

tf.compat.v1.raw_ops.BatchFunction

tf.raw_ops.BatchFunction(
    in_tensors,
    captured_tensors,
    f,
    num_batch_threads,
    max_batch_size,
    batch_timeout_micros,
    Tout,
    max_enqueued_batches=10,
    allowed_batch_sizes=[],
    container='',
    shared_name='',
    batching_queue='',
    low_priority_max_batch_size=0,
    low_priority_batch_timeout_micros=0,
    low_priority_allowed_batch_sizes=[],
    low_priority_max_enqueued_batches=0,
    enable_large_batch_splitting=False,
    name=None
)

Например, в следующем коде

# This input will be captured.
y = tf.placeholder_with_default(1.0, shape=[])

@tf.Defun(tf.float32)
def computation(a):
  return tf.matmul(a, a) + y

b = gen_batch_ops.batch_function(
        f=computation
        in_tensors=[a],
        captured_tensors=computation.captured_inputs,
        Tout=[o.type for o in computation.definition.signature.output_arg],
        num_batch_threads=1,
        max_batch_size=10,
        batch_timeout_micros=100000,  # 100ms
        allowed_batch_sizes=[3, 10],
        batching_queue="")

Если несколько вызовов session.run одновременно пытаются вычислить b, значения a будут собраны и недетерминированно объединены вдоль первой оси, и вычисление будет выполнено только одним потоком.

Предполагается, что все аргументы функции являются тензорами, которые будут объединены в пакеты вдоль первого измерения.

Захваченные аргументы не объединяются в пакеты. Вызов session.run, выполняющий объединение, использует доступные ему значения захваченных тензоров. Поэтому обычно захваченные тензоры должны содержать значения, которые не меняются между вызовами session.run. Хорошим примером является инференс.

SparseTensor не поддерживается. Декорированная функция должна возвращать тензор или список/кортеж тензоров.

Аргументы
in_tensors Список объектов Tensor. Тензоры, которые необходимо объединить в пакеты.
captured_tensors Список объектов Tensor. Тензоры, захваченные функцией и не требующие объединения в пакеты.
f Функция, декорированная с помощью @Defun.
num_batch_threads int. Количество потоков планировщика для обработки пакетов задач. Определяет число пакетов, обрабатываемых параллельно.
max_batch_size int. Размеры пакетов не будут превышать это значение.
batch_timeout_micros int. Максимальное время ожидания в микросекундах перед отправкой неполного пакета.
Tout Список tf.DTypes длиной >= 1. Типы выходных тензоров.
max_enqueued_batches Необязательный int. По умолчанию — 10. Максимальное количество поставленных в очередь пакетов. По умолчанию: 10.
allowed_batch_sizes Необязательный список ints. По умолчанию — []. Необязательный список допустимых размеров пакетов. Если список пуст, ничего не происходит. В противном случае список задаёт размеры пакетов, до которых операция дополняет пакеты. Значения должны монотонно возрастать. Если enable_large_batch_splitting имеет значение false (то есть разделение больших входных данных отключено), последнее значение должно быть равно max_batch_size.
container Необязательный string. По умолчанию — "". Определяет область совместного использования этого пакета.
shared_name Необязательный string. По умолчанию — "". Одновременно выполняющиеся экземпляры batch на одном устройстве с одинаковыми container и shared_name объединят свои элементы в общий пакет. Если значение не задано, в качестве общего имени используется имя операции.
batching_queue Необязательный string. По умолчанию — "".
low_priority_max_batch_size Необязательный int. По умолчанию — 0.
low_priority_batch_timeout_micros Необязательный int. По умолчанию — 0.
low_priority_allowed_batch_sizes Необязательный список ints. По умолчанию — [].
low_priority_max_enqueued_batches Необязательный int. По умолчанию — 0.
enable_large_batch_splitting Необязательный bool. По умолчанию — False. Входные данные большого размера (то есть превышающие наибольшее значение allowed_batch_sizes) будут разделены на несколько пакетов указанного размера.
name Имя операции (необязательно).
Возвращает
Список объектов Tensor типа Tout.

© 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/raw_ops/BatchFunction

Spec-Zone.ru

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