1.7.1計算導數
使用theano.tensor.grad() 函式計算梯度
>>> import theano
>>> import theano.tensor as t
>>> from theano import pp
>>> x = t.dscalar('x')
>>> y = x ** 2
>>> gy = t.grad(y, x)
>>> pp(gy)
'((fill((x ** tensorconstant), tensorconstant) * tensorconstant) * (x ** (tensorconstant - tensorconstant)))'
>>> f = theano.function([x], gy)
>>> f(4)
array(8.0)
>>> pp(f.maker.fgraph.outputs[0])
'(tensorconstant * x)'
>>>
1.7.2計算jacobian
theano中提供了theano.gradient.jacobian()巨集計算jacobian。
下面的**闡明如何手動產生jacobain。
>>> x=
t.dvector
('x'
)>>> y=
x**2>>> j,
updates
=theano
.scan
(lambdai,
y,x:
t.grad(y
[i],x
),sequences=t
.arange(y
.shape[0
]),non_sequences=[
y,x])
>>> f=
function([x
],j,updates
=updates
)>>> f([
4,4])
array([[ 8., 0.],
[ 0., 8.]])
scan()函式是用來產生迴圈型別的變數。
t.arange用來產生乙個0到y.shape[0]的序列。
1.7.3 計算hessian
theano中提供了theano.gradient.hessian()巨集來計算hessian
下面的**闡明如何自己手動產生hessian
>>> x=
t.dvector
('x'
)>>> y=
x**2>>>
cost=y
.sum
()>>> gy=
t.grad
(cost,x
)>>> h,
updates
=theano
.scan
(lambdai,
gy,x:
t.grad(gy
[i],x
),sequences=t
.arange(gy
.shape[0
]),non_sequences=[
gy,x])
>>> f=
function([x
],h,updates
=updates
)>>> f([
4,4])
array([[ 2., 0.],
[ 0., 2.]])
1.7.4
jacobian乘以向量
1.7.4.1 右乘
類似於這種形式,
>>> w=
t.dmatrix
('w'
)>>> v=
t.dmatrix
('v'
)>>> x=
t.dvector
('x'
)>>> y=
t.dot(x,
w)>>> jv=
t.rop(y,
w,v)
>>> f=
theano
.function([w
,v,x
],jv
)>>>
f([[1,
1],[1
,1]],[[2,
2],[2
,2]],[0,
1])array([ 2., 2.])
1.7.4.2 左乘
類似於這種形式,
>>> w=
t.dmatrix
('w'
)>>> v=
t.dvector
('v'
)>>> x=
t.dvector
('x'
)>>> y=
t.dot(x,
w)>>> vj=
t.lop(y,
w,v)
>>> f=
theano
.function([v
,x],vj
)>>> f([
2,2],
[0,1
])array([[ 0., 0.],
[ 2., 2.]])
1.7.5 hessian乘以向量
來自為知筆記(wiz)
CSS入門教程
css是 cascading style sheets 的簡稱,中文翻譯為 串接樣式表 也有人翻譯為 樣式表 css用以作為網頁的排版和風格設計,在web標準建站中,對css的熟悉和使用是相當重要的乙個內容。css的作用是彌補html的不足,讓網頁的設計更為靈活。這個文章只是為您介紹css的基礎應用...
CSS入門教程
css是 cascading style sheets 的簡稱,中文翻譯為 串接樣式表 也有人翻譯為 樣式表 css用以作為網頁的排版和風格設計,在web標準建站中,對css的熟悉和使用是相當重要的乙個內容。css的作用是彌補html的不足,讓網頁的設計更為靈活。這個文章只是為您介紹css的基礎應用...
Linux入門教程
linux下有兩種使用者 1.root使用者,提示符 2.普通使用者,提示符 在 etc目錄下有乙個inittab檔案,其中有一行配置 id 3 defualt 其中,數字3就代表一啟動進入字元終端,如果改為5則代表一啟動進入x window 修改口令 passwd 退出登入 exit 關閉機器 只...