什么是 optimzer 类中张量流最小化() 函数中的"gate_gradients" atribute ?



这是指向 TF 优化器类https://www.tensorflow.org/versions/r0.12/api_docs/python/train/optimizers的链接

GATE_NONE:以两个向量"x"和"y"上的矩阵运算的简单情况为例。 让输出为 L。现在 L wrt x 的梯度是 y,L wrt y 的梯度是 xT(x 转置)。有了GATE_NONE,在计算 y 的梯度之前,可能会应用梯度 wrt x 来修改 x。现在,当计算梯度 wrt y 时,它将计算等于修改后的 x,这是一个错误。当然,在如此简单的情况下不会发生,但您可以想象它可能发生在更复杂/极端的情况下。

GATE_OP:对于每个操作,请确保在使用之前计算所有渐变。这可以防止为梯度取决于输入的多个输入生成梯度的 Ops 的争用条件。(您可以看到这如何防止GATE_NONE问题,尽管以某些并行性为代价)。

GATE_GRAPH:确保在使用其中任何一个变量之前计算所有变量的所有梯度。这提供了最少的并行度,但如果要在应用任何梯度之前处理所有梯度,则可能很有用。(用例的一个例子是在应用之前根据全局规范裁剪渐变)

在您链接的同一页面中,如果您向下滚动一点,它会说:

gate_gradients参数,用于控制应用梯度期间的并行度

最新更新