當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。