tf.nondifferentiable_batch_function
Группирует вычисления, выполняемые декорированной функцией.
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 | Использовать ли автограф для компиляции 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/api_docs/python/tf/nondifferentiable_batch_function