佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 使用tensorflow 實現(xiàn)反向傳播求導(dǎo)

使用tensorflow 實現(xiàn)反向傳播求導(dǎo)

熱門標(biāo)簽:硅谷的囚徒呼叫中心 呼叫中心市場需求 百度AI接口 語音系統(tǒng) Win7旗艦版 電話運營中心 客戶服務(wù) 企業(yè)做大做強

看代碼吧~

X=tf.constant([-1,-2],dtype=tf.float32)
w=tf.Variable([2.,3.])
truth=[3.,3.]
Y=w*X
# cost=tf.reduce_sum(tf.reduce_sum(Y*truth)/(tf.sqrt(tf.reduce_sum(tf.square(Y)))*tf.sqrt(tf.reduce_sum(tf.square(truth)))))
cost=Y[1]*Y
optimizer = tf.train.GradientDescentOptimizer(1).minimize(cost)
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(Y))
    print(sess.run(w))
    print(sess.run(cost))
 
    print(sess.run(Y))
    sess.run(optimizer)
 
    print(sess.run(w))

結(jié)果如下

W由[2,3]變成[-4,-25]

過程:

f=y0*y=w0*x0*w*x=[w1*x1*w0*x0,w1*x1*w1*x1,]

f對w0求導(dǎo),得w1*x0*x1+0=6 ,所以新的w0=w0-6=-4

f對w1求導(dǎo),得 w0*x0*x1+2*w1*x1*x1=28,所以新的w1=w1-28=-25

補充:【TensorFlow篇】--反向傳播

一、前述

反向自動求導(dǎo)是 TensorFlow 實現(xiàn)的方案,首先,它執(zhí)行圖的前向階段,從輸入到輸出,去計算節(jié)點
值,然后是反向階段,從輸出到輸入去計算所有的偏導(dǎo)。

二、具體

1、舉例

圖是第二個階段,在第一個階段中,從 x =3和 y =4開始去計算所有的節(jié)點值

f ( x / y )=x 2 * y + y + 2

求解的想法是逐漸的從圖上往下,計算 f ( x , y )的偏導(dǎo),使用每一個連續(xù)的節(jié)點,直到我們到達(dá)變量節(jié)
點,嚴(yán)重依賴鏈?zhǔn)角髮?dǎo)法則!

2.具體過程:

因為n7是輸出節(jié)點,所以f=n7,所以𝜕f/𝜕𝑛7= 1

讓我們繼續(xù)往下走到n5節(jié)點,𝜕f/𝜕𝑛5=𝜕f/𝜕𝑛7∗𝜕𝑛7/𝜕𝑛5 . 我們已知𝜕f/𝜕𝑛7=1,所以我們需要知道𝜕𝑛7/𝜕𝑛5 ,因為n7=n5+n6,所以我們求得𝜕𝑛7/𝜕𝑛5=1,所以𝜕f/𝜕𝑛5=1*1=1

現(xiàn)在我們繼續(xù)走到節(jié)點n4,𝜕f/𝜕𝑛4=𝜕f/𝜕𝑛5∗𝜕𝑛5/𝜕𝑛4,因為n5=n4*n2,我們求得�𝑛5/𝜕𝑛4=n2,𝜕f/𝜕𝑛4=1*4

沿著圖一路向下,我們可以計算出所有節(jié)點,就能計算出 𝜕𝑓/𝜕x= 24,𝜕𝑓/𝜕y= 10

那我們就可以利用和上面類似的方式方法去計算𝜕𝑓/𝜕𝑤

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • TensorFlow的自動求導(dǎo)原理分析
  • tensorflow中的梯度求解及梯度裁剪操作
  • Tensorflow 如何從checkpoint文件中加載變量名和變量值
  • Python3安裝tensorflow及配置過程
  • 解決tensorflow 與keras 混用之坑
  • tensorflow中的數(shù)據(jù)類型dtype用法說明

標(biāo)簽:長沙 安康 喀什 山西 濟南 山西 海南 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用tensorflow 實現(xiàn)反向傳播求導(dǎo)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    新源县| 瓮安县| 长海县| 松江区| 乐平市| 禹城市| 延庆县| 黔西县| 醴陵市| 昌平区| 长兴县| 桂东县| 双柏县| 丰城市| 百色市| 永年县| 海阳市| 嘉荫县| 荔浦县| 乌鲁木齐市| 万年县| 临桂县| 富顺县| 大邑县| 金溪县| 阳高县| 顺义区| 东兰县| 丰县| 藁城市| 万州区| 三江| 舞钢市| 嵊泗县| 志丹县| 广宁县| 平安县| 娱乐| 盘锦市| 论坛| 霍城县|