![](/img/trans.png)
[英]Theano/lasagne: ValueError: mismatch: got 10 values to set 0 parameters
[英]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.