將所有輸入張量批處理到函數完成的計算中。
用法
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。