tensorflow计算网络占用内存_详细图解神经网络梯度下降法(tensorflow计算梯度)...
生活随笔
收集整理的這篇文章主要介紹了
tensorflow计算网络占用内存_详细图解神经网络梯度下降法(tensorflow计算梯度)...
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.什么是梯度
各個方向的偏微分組成的向量
?
舉例說明,z對x的偏微分和對y的偏微分如下,則梯度是(-2x,2y)的這樣一個向量
?
在光滑連續(xù)函數(shù)的每個點上,都可以計算一個梯度,也就是一個向量,用小箭頭表示,那么梯度越大的地方,向量的模值就會越大,箭頭就會越長,如圖所示
?
可以看到,越平坦的地方,箭頭越短,說明梯度越小,所以梯度反映了圖像的變化趨勢
2.通過梯度更新參數(shù),讓目標函數(shù)(損失函數(shù))趨于極小值
更新參數(shù)的目的是讓目標函數(shù)找到一個極小值,這個目標函數(shù)就是我們說的損失函數(shù)
在函數(shù)中的每個變量稱為參數(shù),對圖二中的例子進一步分析,x,y兩個就是參數(shù),如圖,x沿著x正方向,所以△x>0,如果函數(shù)是上升的,是在上坡的,則△z>0,這時候參數(shù)x應(yīng)該往回走,即應(yīng)該減小。如果函數(shù)是下降,是下坡的,則△z<0,這時候參數(shù)x應(yīng)該往前走,即應(yīng)該增大,所以參數(shù)和梯度的關(guān)系應(yīng)該是相反的
左邊是更新后的參數(shù),αt是學習率,防止每次改變的幅度過大,一不小心跳過了最小值點
3.通過tensorflow計算梯度
損失函數(shù)定義在
with tf.GradientTape() as tape:tape.watch([w])loss = w*x#在這里定義損失函數(shù)計算梯度在
grade = tape.gradient(loss,w)#在這里計算梯度完整代碼
import tensorflow as tf w = tf.constant(1) x = tf.constant(2.) with tf.GradientTape() as tape:tape.watch([w])loss = w*x#在這里定義損失函數(shù) grade = tape.gradient(loss,w)#在這里計算梯度 with tf.Session() as sess:print(sess.run(grade))總結(jié)
以上是生活随笔為你收集整理的tensorflow计算网络占用内存_详细图解神经网络梯度下降法(tensorflow计算梯度)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios请求头解决参数中文乱码_花了一天时
- 下一篇: .net core image怎么保存_