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. |
| Возвращаемое значение | |
|---|---|
| Декорированная функция вернет тензоры вычислений без группировки. |
© 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.4/api_docs/python/tf/nondifferentiable_batch_function