多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > 互聯(lián)網(wǎng) > Theano學習筆記(四)――導數(shù)

Theano學習筆記(四)――導數(shù)

來源:程序員人生   發(fā)布時間:2014-09-08 19:52:23 閱讀次數(shù):2253次

導數(shù)使用T.grad計算。

這里使用pp()打印梯度的符號表達式。

第3行輸出是打印了經(jīng)過優(yōu)化器簡化的符號梯度表達式,與第1個輸出相比確實簡單多了。

fill((x** TensorConstant{2}), TensorConstant{1.0})指創(chuàng)建一個x**2大小的矩陣,并填充1。

importtheano.tensor as T fromtheano import pp fromtheano import function x= T.dscalar('x') y= x ** 2 gy= T.grad(y, x) printpp(gy) f= function([x], gy) printf(4) printpp(f.maker.fgraph.outputs[0]) >>> ((fill((x** TensorConstant{2}), TensorConstant{1.0}) * TensorConstant{2}) * (x **(TensorConstant{2} - TensorConstant{1}))) 8.0 (TensorConstant{2.0}* x)

T.grad的第1個參數(shù)必須是標量

例如計算邏輯函數(shù)sigmoid的導數(shù):


importtheano.tensor as T fromtheano import function x= T.dmatrix('x') s= T.sum(1 / (1 + T.exp(-x))) gs= T.grad(s, x) dlogistic= function([x], gs) printdlogistic([[0, 1], [-1, -2]]) >>> [[0.25 0.19661193] [ 0.19661193 0.10499359]]


計算雅克比(Jacobian)矩陣

雅克比矩陣是向量的一階偏導數(shù):


用T.arrange生成從0到y(tǒng).shape[0]的序列。循環(huán)計算。

scan可以提高創(chuàng)建符號循環(huán)效率。

lambda~是python內(nèi)建的magicfunction.

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]) >>> [[ 8. 0.] [ 0. 8.]]

 

計算海森(Hessian)矩陣

海森矩陣是多元函數(shù)的二階偏導數(shù)方陣。


只要用T.grad(cost,x)替換雅克比矩陣的一些y即可。

x= T.dvector('x') y = x** 2 cost= y.sum() gy =T.grad(cost, x) H,updates = theano.scan(lambda i, 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]) >>> [[2. 0.] [ 0. 2.]]

 

雅克比右乘

x可以由向量擴展成矩陣。雅克比右乘使用Rop:

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) printf([[1, 1], [1, 1]], [[2, 2], [2, 2]], [0,1]) >>> [2. 2.]

雅克比左乘

雅克比左乘使用Lop:


import theano import theano.tensor as T from theano import function x = T.dvector('x') 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) print f([2, 2], [0, 1]) >>> [[0. 0.] [ 2. 2.]]


 

海森矩陣乘以向量

可以使用Rop


import theano import theano.tensor as T from theano import function x= T.dvector('x') v= T.dvector('v') y= T.sum(x ** 2) gy= T.grad(y, x) Hv= T.Rop(gy, x, v) f= theano.function([x, v], Hv) printf([4, 4], [2, 2]) >>> [4. 4.]


歡迎參與討論并關(guān)注本博客微博以及知乎個人主頁后續(xù)內(nèi)容繼續(xù)更新哦~

轉(zhuǎn)載請您尊重作者的勞動,完整保留上述文字以及文章鏈接,謝謝您的支持!



生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 99热成人精品国产免国语的 | 欧美亚洲桃花综合 | 日本成人免费在线视频 | xx视频在线观看 | 亚洲网站免费观看 | 精品国产美女福利在线 | 国语高清精品一区二区三区 | 欧美一区二区三区免费不卡 | 黄色亚洲 | 欧美日韩国产手机在线观看视频 | 国产成人一区二区在线不卡 | 成人久久精品 | 波多野结衣久久精品免费播放 | 成人国产一区 | 亚洲欧美日韩综合一区 | 欧美视频xxxx| 中国在线观看www视频 | free xxx性欧美hd | 伊人免费在线观看 | 国产麻豆自拍 | 久久综合久| 欧美精品超清在线播放 | 日本人成免费大片 | 国产三级国产精品国产国在线观看 | 97av在线视频 | 亚洲在线播放视频 | 五月婷婷丁香综合 | 一级做a爰片性色毛片刺激 一级做a爰片性色毛片黄书 | 国产三级精品在线观看 | 亚洲视频在线免费 | 手机看片国产免费久久网 | 精品日韩一区二区 | 午夜免费视频网站 | 国产逼逼 | 国产亚洲欧美另类久久久 | 亚洲一区二区三区91 | 一二三四高清在线手机视频 | 日韩一区在线视频 | 欧美一级毛片高清视频 | 久久精品观看影院2828 | 伊人色在线观看 |