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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

keras进阶之poly学习率

發布時間:2024/3/12 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 keras进阶之poly学习率 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Keras提供兩種學習率調整方法,都是通過回調函數來實現。

  • LearningRateScheduler
  • ReduceLROnPlateau

1. LearningRateScheduler

keras.callbacks.LearningRateScheduler(schedule)

學習速率定時器,也就是說,定的是啥就是啥,嚴格按照定時器進行更改。

  • schedule: 一個函數,接受epoch作為輸入(整數,從 0 開始迭代), 然后返回一個學習速率作為輸出(浮點數)。
import keras.backend as K from keras.callbacks import LearningRateSchedulerdef scheduler(epoch):# 每隔10個epoch,學習率減小為原來的1/10if epoch % 10 == 0 and epoch != 0:lr = K.get_value(model.optimizer.lr)K.set_value(model.optimizer.lr, lr * 0.1)print("lr changed to {}".format(lr * 0.1))return K.get_value(model.optimizer.lr)# def poly_decay(epoch): # # initialize the maximum number of epochs, base learning rate, # # and power of the polynomial # maxEpochs = epochs # baseLR = learning_rate # power = 1.0 # # # compute the new learning rate based on polynomial decay # alpha = baseLR * (1 - (epoch / float(maxEpochs))) ** power # # return alpha # # # poly_reduce_lr = LearningRateScheduler(poly_decay)reduce_lr = LearningRateScheduler(scheduler) model.fit(train_x, train_y, batch_size=128, epochs=50, callbacks=[reduce_lr])

2. ReduceLROnPlateau

keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.1, patience=10, verbose=0, mode='auto', min_delta=0.0001, cooldown=0, min_lr=0)

當評估指標停止提升時,降低學習速率。

  • monitor: 被監測的指標。
  • factor: 學習速率被降低的因數。新的學習速率 = 學習速率 * 因數
  • patience: 沒有提升的訓練輪數,在這之后訓練速率會被降低。
  • verbose: 整數。0:安靜,1:更新信息。
  • mode: {auto, min, max} 其中之一。如果是 min 模式,學習速率會被降低如果被監測的數據已經停止下降; 在 max 模式,學習塑料會被降低如果被監測的數據已經停止上升; 在 auto 模式,方向會被從被監測的數據中自動推斷出來。
  • min_delta: 閾值,用來確定是否進入檢測值的“平原區”
  • cooldown: 在學習速率被降低之后,重新恢復正常操作之前等待的訓練輪數量。
  • min_lr: 學習速率的下邊界。
from keras.callbacks import ReduceLROnPlateaureduce_lr = ReduceLROnPlateau(monitor='val_loss', patience=10, mode='min') model.fit(train_x, train_y, batch_size=128, epochs=50, validation_split=0.1, callbacks=[reduce_lr])

總結

以上是生活随笔為你收集整理的keras进阶之poly学习率的全部內容,希望文章能夠幫你解決所遇到的問題。

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