TensorFlow梯度計(jì)算: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.

參見(jiàn)指南:Training函數(shù)>梯度計(jì)算

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

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

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

參數(shù):

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

返回值:

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

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)