簡體   English   中英

烤寬面條/ Theano漸變值

[英]Lasagne / Theano gradient values

我目前正在研究使用Lasagne / Theano的復發神經網絡。

在訓練時,使用Theano的符號漸變計算更新。

grads = theano.grad(loss_or_grads, params)

雖然漸變表達式總的來說非常精細,但我也對漸變感興趣以便監控訓練。

我現在的問題是,是否有一個內置的方法來獲取漸變值,到目前為止我還沒有找到,或者我是否必須自己做。

提前致謝

我不知道任何測試漸變的千層面功能,但您可以通過簡單的theano功能自行獲得。

假設我們有以下theano變量:

  • inputs =輸入網絡
  • targets =網絡的目標輸出
  • loss =損失函數的值,定義為網絡輸出和targets的函數
  • l_hid =網絡的循環層,輸入lasagne.layers.RecurrentLayer

假設我們對復發權重的損失函數的梯度感興趣:

grad = theano.grad(loss, l_hid.W_hid_to_hid)

定義theano函數以獲取漸變的數值

get_grad = theano.function([inputs, targets], grad)

現在,只需為輸入和目標的任何值(例如當前的小批量)調用get_grad get_grad()不需要傳遞權重值,因為它們存儲為theano共享變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM