当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python 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
)

参数

  • num_batch_threads 用于处理批量工作的调度线程数。确定并行处理的批次数。
  • max_batch_size 批量大小永远不会大于此。
  • batch_timeout_micros 在输出不完整批次之前等待的最大微秒数。
  • allowed_batch_sizes 允许的批量大小的可选列表。如果留空,则不执行任何操作。否则,提供批量大小列表,导致操作将批量填充到其中一个大小。条目必须单调增加,并且最终条目必须等于max_batch_size。
  • max_enqueued_batches 批处理队列的最大深度。默认为 10。
  • autograph 是否使用 autograph 编译 python 和 Eager 样式代码以高效执行graph-mode。
  • enable_large_batch_splitting 此选项的值不会影响给定相同输入的处理输出;它影响如下所述的实施细节:1。通过消除不必要的添加来提高配料效率。 2、max_batch_size指定输入的限制,allowed_batch_sizes指定要处理的任务的限制。当'max_execution_batch_size' 为 32 时,API 用户可以给出大小为 128 的输入 -> 实现可以将 128 的输入拆分为 4 x 32,调度并发处理,然后返回对应于 128 的串联结果。

返回

  • 修饰函数将返回未批处理的计算输出张量。

因此,例如,在以下代码中

@batch_function(1, 2, 3)
def layer(a):
  return tf.matmul(a, a)

b = layer(w)

如果多个 session.run 调用同时尝试计算 b,则将收集 w 的值,沿第一个轴不确定地连接,并且只有一个线程将运行计算。有关更多详细信息,请参阅Batch 操作的文档。

假设修饰函数的所有参数都是张量,它们将沿着它们的第一维进行批处理。

不支持稀疏张量。装饰函数的返回值必须是张量或张量的列表/元组。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.nondifferentiable_batch_function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。