将所有输入张量批处理到函数完成的计算中。
用法
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='',
enable_large_batch_splitting=False, name=None
)
参数
-
in_tensors
Tensor
对象的列表。要批处理的张量。 -
captured_tensors
Tensor
对象的列表。在函数中捕获的张量,不需要批处理。 -
f
用@Defun 装饰的函数。 -
num_batch_threads
一个int
。用于处理批量工作的调度线程数。确定并行处理的批次数。 -
max_batch_size
一个int
。批量大小永远不会大于此。 -
batch_timeout_micros
一个int
。在输出不完整批次之前等待的最大微秒数。 -
Tout
长度为>= 1
的tf.DTypes
列表。输出张量的类型。 -
max_enqueued_batches
可选的int
。默认为10
。排队的最大批次数。默认值:10。 -
allowed_batch_sizes
ints
的可选列表。默认为[]
。允许的批量大小的可选列表。如果留空,则不执行任何操作。否则,提供批量大小列表,导致操作将批量填充到其中一个大小。条目必须单调增加。如果enable_large_batch_splitting 为假(即未启用large-input-split),则最终条目必须等于max_batch_size。 -
container
可选的string
。默认为""
。控制此批次的共享范围。 -
shared_name
可选的string
。默认为""
。在具有相同容器和shared_name 的同一设备中同时运行批处理实例会将它们的元素批处理在一起。如果留空,则操作名称将用作共享名称。 -
batching_queue
可选的string
。默认为""
。 -
enable_large_batch_splitting
可选的bool
。默认为False
。大尺寸的输入(即大于allowed_batch_sizes
的最大值)将被分成多个批次大小的批次。 -
name
操作的名称(可选)。
返回
-
类型为
Tout
的Tensor
对象的列表。
因此,例如,在以下代码中
# 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 调用中保持不变的值。推理就是一个很好的例子。
不支持稀疏张量。装饰函数的返回值必须是张量或张量的列表/元组。
相关用法
- Python tf.raw_ops.BatchMatMul用法及代码示例
- Python tf.raw_ops.BatchToSpaceND用法及代码示例
- Python tf.raw_ops.BatchToSpace用法及代码示例
- Python tf.raw_ops.BatchMatMulV3用法及代码示例
- Python tf.raw_ops.BatchMatMulV2用法及代码示例
- Python tf.raw_ops.Bitcast用法及代码示例
- Python tf.raw_ops.BitwiseAnd用法及代码示例
- Python tf.raw_ops.BlockLSTM用法及代码示例
- Python tf.raw_ops.BlockLSTMV2用法及代码示例
- Python tf.raw_ops.BitwiseOr用法及代码示例
- Python tf.raw_ops.BitwiseXor用法及代码示例
- Python tf.raw_ops.BroadcastTo用法及代码示例
- Python tf.raw_ops.TPUReplicatedInput用法及代码示例
- Python tf.raw_ops.SelfAdjointEigV2用法及代码示例
- Python tf.raw_ops.OneHot用法及代码示例
- Python tf.raw_ops.ResourceScatterNdSub用法及代码示例
- Python tf.raw_ops.ReadVariableXlaSplitND用法及代码示例
- Python tf.raw_ops.GatherV2用法及代码示例
- Python tf.raw_ops.Expm1用法及代码示例
- Python tf.raw_ops.UniqueWithCounts用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.raw_ops.BatchFunction。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。