y (z
)=x2
ex,.
y(z) = x^e^,.
y(z)=x
2ex,.y′
=2xe
x+x2
ex,.
y^= 2xe^+x^e^,.
y′=2xe
x+x2
ex,.
一般可以手動計算出導數的可導函式,可以手動求導。
學習torch,掌握tensor,autograd,variable,nn,nn.module,loss,optim,dataset是關鍵。自動微分是深度學習得以實現的關鍵。下面將模擬實現函式的求導功能。
定義函式;
定義導函式。
import torch as t
from torch.autograd import variable as v
deffn
(x):
y = x**
2*t.exp(x)
return y
defgrad_fn
(x):
"""手動求導"""
dx =
2*x*t.exp(x)
+ x**
2*t.exp(x)
return dx
# 測試
x = v(t.randn(3,
4),requires_grad=
true
)y = fn(x)
# 輸出求導結果
print
(grad_fn(x)
)"""
tensor([[ 0.1414, 0.1452, 11.5258, -0.2398],
[ 1.0525, 10.6380, 3.0432, -0.3667],
[-0.3050, -0.0358, -0.3827, -0.4155]], grad_fn=)
"""# torch.autograd自動求導時,執行
y.backward(t.ones(y.size())
)print
(x.grad)
"""tensor([[ 0.1414, 0.1452, 11.5258, -0.2398],
[ 1.0525, 10.6380, 3.0432, -0.3667],
[-0.3050, -0.0358, -0.3827, -0.4155]])
"""
理解pytorch中的梯度
粗淺理解就是,只有變數才有梯度,因為梯度是求導得來的嘛 created on tue jan 12 16 41 46 2021 認識pytorch中的梯度 author user import torch from torch.autograd import variable x11 torch.t...
Pytorch中的梯度下降及優化
在pytorch中使用mini batch這種方法進行訓練 對整個訓練集進行梯度下降法的時候,我們必須處理整個訓練資料集,然後才能進行一步梯度下降,即每一步梯度下降法需要對整個訓練集進行一次處理,如果訓練資料集很大的時候處理速度會很慢,而且也不可能一次的載入到記憶體或者視訊記憶體中 所以我們會把大資...
pytorch中的gather函式
from 今天剛開始接觸,讀了一下documentation,寫乙個一開始每太搞懂的函式gather b torch.tensor 1,2,3 4,5,6 print bindex 1 torch.longtensor 0,1 2,0 index 2 torch.longtensor 0,1,1 0...