日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

TensorFlow优化器及用法

發布時間:2023/11/28 生活经验 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow优化器及用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TensorFlow優化器及用法
函數在一階導數為零的地方達到其最大值和最小值。梯度下降算法基于相同的原理,即調整系數(權重和偏置)使損失函數的梯度下降。
在回歸中,使用梯度下降來優化損失函數并獲得系數。本文將介紹如何使用 TensorFlow 的梯度下降優化器及其變體。
按照損失函數的負梯度成比例地對系數(W 和 b)進行更新。根據訓練樣本的大小,有三種梯度下降的變體:

  1. Vanilla 梯度下降:在 Vanilla 梯度下降(也稱作批梯度下降)中,在每個循環中計算整個訓練集的損失函數的梯度。該方法可能很慢并且難以處理非常大的數據集。該方法能保證收斂到凸損失函數的全局最小值,但對于非凸損失函數可能會穩定在局部極小值處。
  2. 隨機梯度下降:在隨機梯度下降中,一次提供一個訓練樣本用于更新權重和偏置,從而使損失函數的梯度減小,然后再轉向下一個訓練樣本。整個過程重復了若干個循環。由于每次更新一次,所以它比 Vanilla 快,但由于頻繁更新,所以損失函數值的方差會比較大。
  3. 小批量梯度下降:該方法結合了前兩者的優點,利用一批訓練樣本來更新參數。
    TensorFlow優化器的使用
    首先確定想用的優化器。TensorFlow提供了各種各樣的優化器:
    ? 這里從最流行、最簡單的梯度下降優化器開始:

GradientDescentOptimizer 中的 learning_rate 參數可以是一個常數或張量。它的值介于 0 和 1 之間。
必須為優化器給定要優化的函數。使用它的方法實現最小化。該方法計算梯度并將梯度應用于系數的學習。該函數在 TensorFlow 文檔中的定義如下:

綜上所述,這里定義計算圖:

饋送給 feed_dict 的 X 和 Y 數據可以是 X 和 Y 個點(隨機梯度)、整個訓練集(Vanilla)或成批次的。
? 梯度下降中的另一個變化是增加了動量項。為此,使用優化器 tf.train.MomentumOptimizer()。它可以把 learning_rate 和 momentum 作為初始化參數:

? 可以使用 tf.train.AdadeltaOptimizer() 來實現一個自適應的、單調遞減的學習率,它使用兩個初始化參數 learning_rate 和衰減因子 rho:

? TensorFlow 也支持 Hinton 的 RMSprop,其工作方式類似于 Adadelta 的 tf.train.RMSpropOptimizer():

Adadelta 和 RMSprop 之間的細微不同可參考 http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf 和 https://arxiv.org/pdf/1212.5701.pdf。
? 另一種 TensorFlow 支持的常用優化器是 Adam 優化器。該方法利用梯度的一階和二階矩對不同的系數計算不同的自適應學習率:

? 除此之外,TensorFlow 還提供了以下優化器:

通常建議從較大學習率開始,并在學習過程中將其降低。這有助于對訓練進行微調??梢允褂?TensorFlow 中的 tf.train.exponential_decay 方法來實現這一點。

根據 TensorFlow 文檔,在訓練模型時,通常建議在訓練過程中降低學習率。該函數利用指數衰減函數初始化學習率。需要一個 global_step 值來計算衰減的學習率??梢詡鬟f一個在每個訓練步驟中遞增的 TensorFlow 變量。函數返回衰減的學習率。
變量:
? learning_rate:標量float32或float64張量或者Python數字。初始學習率。
? global_step:標量int32或int64張量或者Python數字。用于衰減計算的全局步數,非負。
? decay_steps:標量int32或int64張量或者Python數字。正數,參考之前所述的衰減計算。
? decay_rate:標量float32或float64張量或者Python數字。衰減率。
? staircase:布爾值。若為真則以離散的間隔衰減學習率。
? name:字符串??蛇x的操作名。默認為ExponentialDecay。
返回:
? 與learning_rate類型相同的標量張量。衰減的學習率。
實現指數衰減學習率的代碼如下:

總結

以上是生活随笔為你收集整理的TensorFlow优化器及用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。