2017-04-04 27 views

回答

1

在同一個頁面,你有聯繫,如果你向下滾動一點點,它說:

gate_gradients控制度參數在梯度應用過程中的並行性

+1

是的。我看到了。他們提到的並行性是什麼?對於matmul操作,我們可以得到兩個輸入X和Y,他們說我們可以先計算X的梯度,然後再應用於X而Y還沒有被計算出來。它是什麼 ? –

3

GATE_NONE:對兩個向量'x'和'y'進行簡單的matmul操作。讓輸出爲L.現在L的梯度x是y並且L的梯度y是xT(x轉置)。與GATE_NONE它可能發生的情況是梯度wrt x被應用於在y的梯度被計算之前修改x。現在,當計算梯度wrt時,它將被計算爲等於修改的x,這是一個錯誤。當然,這種情況不會發生在這種簡單的情況下,但您可以想象它可能發生在更復雜/極端的情況下

GATE_OP:對於每個Op,確保所有梯度在使用前都要計算。這可以防止爲多個輸入生成梯度的Ops競爭條件,其中梯度取決於輸入。 (你可以看到這是如何防止GATE_NONE的問題的,儘管以一些並行性爲代價)。

GATE_GRAPH:確保使用它們中的任何一個之前所有變量都梯度計算。這提供最低的並行性,但如果你想將它們中的任何之前處理所有的梯度可能是有用的。(使用情況的一個例子是按照全球標準在應用之前裁剪梯度)

相關問題