TensorFlow梯度計算:tf.gradients

2018-10-24 17:49 更新
函數(shù):tf.gradients
gradients(
    ys,
    xs,
    grad_ys=None,
    name='gradients',
    colocate_gradients_with_ops=False,
    gate_gradients=False,
    aggregation_method=None
)

定義在:tensorflow/python/ops/gradients_impl.py.

參見指南:Training函數(shù)>梯度計算

在 xs 中構(gòu)造了 ys 的 w.r.t. x 和的符號偏導(dǎo)數(shù).
ys 和 xs 是一個張量或一個張量的列表.grad_ys 是一個張量列表,持有由 ys 接收的梯度.該列表必須與 ys 具有相同長度.

gradients() 向圖形添加操作以輸出 ys 相對于的偏導(dǎo)數(shù) xs.它返回長度為 len (xs) 的張量列表,其中每個張量 ys 中 y 的 sum(dy/dx).

grad_ys 是與 ys 相同長度的張量列表,它包含 y 的初始梯度.當(dāng) grad_ys 是 None 時,我們在 ys 中為每個 y 填入一個1的形狀的張量.用戶可以提供自己的初始 grad_ys,使用不同的初始梯度為每個 y 計算導(dǎo)數(shù) (例如:如果你想為每個 y 中的每個值不同地加權(quán)梯度).

參數(shù):

  • ys:要區(qū)分的張量或者張量列表.
  • xs:用于微分的張量或者張量列表.
  • grad_ys:(可選)與 ys 具有相同大小的張量或張量列表,并且對 ys 中的每個 y 計算的梯度.
  • name:用于將所有漸變操作組合在一起的可選名稱.默認(rèn)為“漸變”.
  • colocate_gradients_with_ops:如果為 True,請嘗試使用相應(yīng)的操作對齊梯度.
  • gate_gradients:如果為True,則在操作返回的梯度周圍添加一個元組.這避免了一些競態(tài)條件.
  • aggregation_method:指定用于組合漸變項的方法.接受的值是在類 AggregationMethod 中定義的常量.

返回值:

該函數(shù)返回 xs 中每個 x 的 sum(dy/dx) 的列表.

可能引發(fā)的異常:

  • LookupError:如果 x 和 y 之間的一個操作是沒有注冊的梯度函數(shù).
  • ValueError:如果參數(shù)無效.
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號