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


Python tf.compat.v1.foldl用法及代碼示例


foldl 在從維度 0 的 elems 解包的張量列表中。

用法

tf.compat.v1.foldl(
    fn, elems, initializer=None, parallel_iterations=10, back_prop=True,
    swap_memory=False, name=None
)

參數

  • fn 要執行的可調用對象。
  • elems 張量或(可能是嵌套的)張量序列,每個張量都將沿其第一維展開。結果切片的嵌套序列將是 fn 的第一個參數。
  • initializer (可選)張量或(可能是嵌套的)張量序列,作為累加器的初始值。
  • parallel_iterations (可選)允許並行運行的迭代次數。
  • back_prop (可選)True 啟用對反向傳播的支持。
  • swap_memory (可選)True 啟用GPU-CPU 內存交換。
  • name (可選)返回張量的名稱前綴。

返回

  • 張量或(可能是嵌套的)張量序列,由從第一個到最後一個從 elems 解包的張量列表連續應用 fn 產生。

拋出

  • TypeError 如果 fn 不可調用。

此 foldl 運算符重複地將可調用的 fn 應用於從第一個到最後一個元素的序列。元素由從 elems 在維度 0 上解壓縮的張量組成。可調用的 fn 將兩個張量作為參數。第一個參數是從前麵的 fn 調用計算的累加值,第二個參數是 elems 的當前位置的值。如果initializer 為None,則elems 必須至少包含一個元素,並且它的第一個元素用作初始值設定項。

假設 elems 被解壓縮到 values 中,這是一個張量列表。結果張量的形狀是 fn(initializer, values[0]).shape`。

此方法還允許 multi-arity elemsfn 的輸出。如果elems 是張量的(可能是嵌套的)列表或元組,則這些張量中的每一個都必須具有匹配的第一個(解包)維度。 fn 的簽名可能與 elems 的結構匹配。也就是說,如果 elems(t1, [t2, t3, [t4, t5]]) ,那麽 fn 的適當簽名是: fn = lambda (t1, [t2, t3, [t4, t5]]):

例子:

elems = tf.constant([1, 2, 3, 4, 5, 6])
sum = foldl(lambda a, x:a + x, elems)
# sum == 21

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.foldl。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。