tf.nondifferentiable_batch_function
| Просмотреть исходный код на GitHub |
Группирует вычисления, выполняемые декорированной функцией.
tf.nondifferentiable_batch_function(
num_batch_threads,
max_batch_size,
batch_timeout_micros,
allowed_batch_sizes=None,
max_enqueued_batches=10,
autograph=True,
enable_large_batch_splitting=True
)
Например, в следующем коде
@batch_function(1, 2, 3) def layer(a): return tf.matmul(a, a) b = layer(w)
если более одного вызова session.run одновременно пытается вычислить b значения w будут собраны, не определяемо конкатенированы по первой оси, и только один поток выполнит вычисление. См. документацию по операции Batch для получения дополнительных сведений.
Предполагается, что все аргументы декорированной функции являются тензорами, которые будут сгруппированы по своему первому измерению.
SparseTensor не поддерживается. Значение возвращаемое декорированной функцией, должно быть тензором или списком/кортежем тензоров.
| Аргументы | |
|---|---|
num_batch_threads | Количество потоков планирования для обработки партий работ. Определяет количество партий, обрабатываемых параллельно. |
max_batch_size | Размер партий никогда не будет больше этого значения. |
batch_timeout_micros | Максимальное количество микросекунд ожидания до вывода неполной партии. |
allowed_batch_sizes | Необязательный список разрешённых размеров партий. Если пустой, ничего не делает. В противном случае предоставляет список размеров партий, заставляя операцию дополнять партии до одного из этих размеров. Элементы должны увеличиваться монотонно, а последний элемент должен быть равен max_batch_size. |
max_enqueued_batches | Максимальная глубина очереди партий. По умолчанию 10. |
autograph | Используется ли autograph для компиляции python и кода в стиле eager для эффективного выполнения в режиме графа. |
enable_large_batch_splitting | Значение этого параметра не влияет на обработку вывода с одинаковым входом; он влияет на детали реализации, как указано ниже: 1. Повышение эффективности пакетной обработки путём устранения ненужного добавления. 2.max_batch_size указывает ограничение входных данных, а allowed_batch_sizes указывает ограничение задачи, подлежащей обработке. Пользователь API может предоставить входные данные размером 128, когда 'max_execution_batch_size' равен 32 -> реализация может разделить входные данные 128 на 4 x 32, запланировать одновременную обработку, а затем вернуть конкатенированные результаты, соответствующие 128. |
| Возвращаемое значение | |
|---|---|
| Декорированная функция вернёт тензоры вывода не сгруппированных вычислений. |
© 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/versions/r2.9/api_docs/python/tf/nondifferentiable_batch_function