欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Keras SGD 隨機梯度下降優(yōu)化器參數(shù)設(shè)置方式

 更新時間:2020年06月19日 15:37:26   作者:DexterLeiX  
這篇文章主要介紹了Keras SGD 隨機梯度下降優(yōu)化器參數(shù)設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

SGD 隨機梯度下降

Keras 中包含了各式優(yōu)化器供我們使用,但通常我會傾向于使用 SGD 驗證模型能否快速收斂,然后調(diào)整不同的學(xué)習(xí)速率看看模型最后的性能,然后再嘗試使用其他優(yōu)化器。

Keras 中文文檔中對 SGD 的描述如下:

keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)

隨機梯度下降法,支持動量參數(shù),支持學(xué)習(xí)衰減率,支持Nesterov動量

參數(shù):

lr:大或等于0的浮點數(shù),學(xué)習(xí)率

momentum:大或等于0的浮點數(shù),動量參數(shù)

decay:大或等于0的浮點數(shù),每次更新后的學(xué)習(xí)率衰減值

nesterov:布爾值,確定是否使用Nesterov動量

參數(shù)設(shè)置

Time-Based Learning Rate Schedule

Keras 已經(jīng)內(nèi)置了一個基于時間的學(xué)習(xí)速率調(diào)整表,并通過上述參數(shù)中的 decay 來實現(xiàn),學(xué)習(xí)速率的調(diào)整公式如下:

LearningRate = LearningRate * 1/(1 + decay * epoch)

當(dāng)我們初始化參數(shù)為:

LearningRate = 0.1
decay = 0.001

大致變化曲線如下(非實際曲線,僅示意):

當(dāng)然,方便起見,我們可以將優(yōu)化器設(shè)置如下,使其學(xué)習(xí)速率隨著訓(xùn)練輪次變化:

sgd = SGD(lr=learning_rate, decay=learning_rate/nb_epoch, momentum=0.9, nesterov=True)

Drop-Based Learning Rate Schedule

另外一種學(xué)習(xí)速率的調(diào)整方法思路是保持一個恒定學(xué)習(xí)速率一段時間后立即降低,是一種突變的方式。通常整個變化趨勢為指數(shù)形式。

對應(yīng)的學(xué)習(xí)速率變化公式如下:

LearningRate = InitialLearningRate * DropRate^floor(Epoch / EpochDrop)

實現(xiàn)需要使用 Keras 中的 LearningRateScheduler 模塊:

from keras.callbacks import LearningRateScheduler
# learning rate schedule
def step_decay(epoch):
 initial_lrate = 0.1
 drop = 0.5
 epochs_drop = 10.0
 lrate = initial_lrate * math.pow(drop, math.floor((1+epoch)/epochs_drop))
 return lrate

lrate = LearningRateScheduler(step_decay)

# Compile model
sgd = SGD(lr=0.0, momentum=0.9, decay=0.0, nesterov=False)
model.compile(loss=..., optimizer=sgd, metrics=['accuracy'])

# Fit the model
model.fit(X, Y, ..., callbacks=[lrate])

補充知識:keras中的BGD和SGD

關(guān)于BGD和SGD

首先BGD為批梯度下降,即所有樣本計算完畢后才進行梯度更新;而SGD為隨機梯度下降,隨機計算一次樣本就進行梯度下降,所以速度快很多但容易陷入局部最優(yōu)值。

折中的辦法是采用小批的梯度下降,即把數(shù)據(jù)分成若干個批次,一批來進行一次梯度下降,減少隨機性,計算量也不是很大。 mini-batch

keras中的batch_size就是小批梯度下降。

以上這篇Keras SGD 隨機梯度下降優(yōu)化器參數(shù)設(shè)置方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python將一個CSV文件里的數(shù)據(jù)追加到另一個CSV文件的方法

    Python將一個CSV文件里的數(shù)據(jù)追加到另一個CSV文件的方法

    今天小編就為大家分享一篇Python將一個CSV文件里的數(shù)據(jù)追加到另一個CSV文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • TENSORFLOW變量作用域(VARIABLE SCOPE)

    TENSORFLOW變量作用域(VARIABLE SCOPE)

    這篇文章主要介紹了TENSORFLOW變量作用域(VARIABLE SCOPE),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例

    python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例

    這篇文章主要介紹了python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • conda安裝tensorflow和conda常用命令小結(jié)

    conda安裝tensorflow和conda常用命令小結(jié)

    這篇文章主要介紹了conda安裝tensorflow和conda常用命令小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • python單鏈路性能測試實踐

    python單鏈路性能測試實踐

    這篇文章主要為大家介紹了python單鏈路性能測試實踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Python實現(xiàn)使用卷積提取圖片輪廓功能示例

    Python實現(xiàn)使用卷積提取圖片輪廓功能示例

    這篇文章主要介紹了Python實現(xiàn)使用卷積提取圖片輪廓功能,涉及Python數(shù)值運算與圖像處理相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • python調(diào)用函數(shù)、類和文件操作簡單實例總結(jié)

    python調(diào)用函數(shù)、類和文件操作簡單實例總結(jié)

    這篇文章主要介紹了python調(diào)用函數(shù)、類和文件操作,結(jié)合簡單實例形式總結(jié)分析了Python調(diào)用函數(shù)、類和文件操作的各種常見操作技巧,需要的朋友可以參考下
    2019-11-11
  • 基于python實現(xiàn)動態(tài)煙霧效果

    基于python實現(xiàn)動態(tài)煙霧效果

    動態(tài)煙霧效果常用于游戲和動畫中,為場景增添 逼真的視覺效果,在這篇博客中,我們將使用Python和Pygame庫來創(chuàng)建一個逼真的煙霧動畫效果,感興趣的小伙伴跟著小編一起來看看吧
    2024-09-09
  • Python實現(xiàn)爬蟲從網(wǎng)絡(luò)上下載文檔的實例代碼

    Python實現(xiàn)爬蟲從網(wǎng)絡(luò)上下載文檔的實例代碼

    小編最近在研究python,接觸到了爬蟲,本文給大家?guī)砹薖ython實現(xiàn)爬蟲從網(wǎng)絡(luò)上下載文檔的知識。下面小編把具體實例代碼分享到腳本之家平臺,感興趣的朋友參考下吧
    2018-06-06
  • 讓Python更加充分的使用Sqlite3

    讓Python更加充分的使用Sqlite3

    這篇文章主要為大家詳細介紹了Python更加充分的使用Sqlite3的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評論