yolov3代碼涉及到的Keras.callbacks類

官網(wǎng)解釋

Keras.callbacks

回調(diào)函數(shù)是一組在訓(xùn)練的特定階段被調(diào)用的函數(shù)集,你可以使用回調(diào)函數(shù)來觀察訓(xùn)練過程中網(wǎng)絡(luò)內(nèi)部的狀態(tài)和統(tǒng)計(jì)信息。通過傳遞回調(diào)函數(shù)列表到模型的.fit()中,即可在給定的訓(xùn)練階段調(diào)用該函數(shù)集中的函數(shù)。

ModelCheckpoint:

該回調(diào)函數(shù)將在每個(gè)epoch后保存模型到filepath

keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', 
verbose=0, save_best_only=False, 
save_weights_only=False, mode='auto', period=1)
  • filepath:字符串,保存模型的路徑和名稱。
  • monitor='val_loss':需要監(jiān)視的值。默認(rèn)是驗(yàn)證集損失。
  • verbose=0:信息展示模式,0或1。
  • save_best_only=False:當(dāng)設(shè)置為True時(shí),將只保存在驗(yàn)證集上性能最好的模型。
  • save_weights_only=False:若設(shè)置為True,則只保存模型權(quán)重,否則將保存整個(gè)模型(包括模型結(jié)構(gòu),配置信息等)。
  • mode:‘a(chǎn)uto’,‘min’,‘max’之一,在save_best_only=True時(shí)決定性能最佳模型的評(píng)判準(zhǔn)則,例如,當(dāng)監(jiān)測(cè)值為val_acc時(shí),模式應(yīng)為max,當(dāng)檢測(cè)值為val_loss時(shí),模式應(yīng)為min。在auto模式下,評(píng)價(jià)準(zhǔn)則由被監(jiān)測(cè)值的名字自動(dòng)推斷。
  • period=1:CheckPoint之間的間隔的epoch數(shù)。(epoch指整個(gè)數(shù)據(jù)集(所有batch全部更新完1次)被訓(xùn)練的輪次)。

ReduceLROnPlateau:

當(dāng)學(xué)習(xí)停滯時(shí),減少2倍或10倍的學(xué)習(xí)率常常能獲得較好的效果。該回調(diào)函數(shù)檢測(cè)指標(biāo)的情況,如果在patience個(gè)epoch中看不到模型性能提升,則減少學(xué)習(xí)率。學(xué)習(xí)率對(duì)模型訓(xùn)練的影響解釋

keras.callbacks.ReduceLROnPlateau(monitor='val_loss', 
factor=0.1, patience=10, verbose=0, mode='auto', 
epsilon=0.0001, cooldown=0, min_lr=0)
  • monitor:被監(jiān)測(cè)的量。默認(rèn)是val_loss
  • factor:每次減少學(xué)習(xí)率(lr)的因子,學(xué)習(xí)率將以lr = lr*factor的形式被減少
  • patience:當(dāng)patience個(gè)epoch過去而模型性能不提升時(shí),學(xué)習(xí)率減少的動(dòng)作會(huì)被觸發(fā)
  • mode:‘a(chǎn)uto’,‘min’,‘max’之一,如果觀測(cè)值是val_loss,那么當(dāng)它不再減少(對(duì)應(yīng)min)時(shí)改變lr
  • epsilon:閾值,用來確定是否進(jìn)入檢測(cè)值的“平原區(qū)”。
  • cooldown:學(xué)習(xí)率減少后,會(huì)經(jīng)過cooldown個(gè)epoch才重新進(jìn)行正常操作
  • min_lr:學(xué)習(xí)率的下限

EarlyStopping:

當(dāng)監(jiān)測(cè)值monitor不再改善時(shí),該回調(diào)函數(shù)將中止訓(xùn)練

keras.callbacks.EarlyStopping(monitor='val_loss', patience=0, 
verbose=0, mode='auto')
  • monitor:需要監(jiān)視的量
  • patience:當(dāng)early stop被激活(如發(fā)現(xiàn)loss相比上一個(gè)epoch訓(xùn)練沒有下降),則經(jīng)過patience個(gè)epoch后停止訓(xùn)練。
  • verbose:信息展示模式
  • mode:‘a(chǎn)uto’,‘min’,‘max’之一,在min模式下,如果檢測(cè)值停止下降則中止訓(xùn)練。在max模式下,當(dāng)檢測(cè)值不再上升則停止訓(xùn)練。

yolov3代碼->train.py涉及到的:

ModelCheckpoint:

checkpoint = ModelCheckpoint(log_dir + 'ep{epoch:03d}-

loss{loss:.3f}-val_loss{val_loss:.3f}.h5',

        monitor='val_loss', save_weights_only=True, 

save_best_only=True, period=3)

參數(shù)解釋:

  • filepath=log_dir + 'ep{epoch:03d}-loss{loss:.3f}-val_loss{val_loss:.3f}.h5'。保存的權(quán)值名字。
  • monitor='val_loss', 檢測(cè)val_loss的值。
  • save_weights_only=True, 只保留模型權(quán)值
  • save_best_only=True, 只保留性能最好的模型
  • period=3。每3個(gè)epoch進(jìn)行一次CheckPoint。

ReduceLROnPlateau:

    reduce_lr = ReduceLROnPlateau(monitor='val_loss', 

factor=0.1, patience=3, verbose=1)

參數(shù)解釋:

  • monitor='val_loss', 監(jiān)測(cè)val_loss。如果在patience個(gè)epoch中val_loss沒有下降,那么改變lr。
  • factor=0.1, lr=lr*0.1
  • patience=3, 持續(xù)三個(gè)epoch。
  • verbose=1。

EarlyStopping:

early_stopping = EarlyStopping(monitor='val_loss', 

min_delta=0, patience=10, verbose=1)

參數(shù)解釋:

  • monitor='val_loss', 監(jiān)測(cè)值
  • min_delta=0,
  • patience=10, 如發(fā)現(xiàn)loss相比上一個(gè)epoch訓(xùn)練沒有下降,則經(jīng)過10個(gè)epoch后停止訓(xùn)練。說明模型存在過擬合問題。
  • verbose=1
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • [TOC]工欲善其事,必先利其器,要跑好模型,先要熟悉工具,這里總結(jié)下Keras里面常用的API和一些問題的處理方...
    ItchyHiker閱讀 3,838評(píng)論 0 6
  • 本系列文章面向深度學(xué)習(xí)研發(fā)者,希望通過Image Caption Generation,一個(gè)有意思的具體任務(wù),深入...
    imGeek閱讀 2,005評(píng)論 0 8
  • 30秒上手 https://keras.io/#getting-started-30-seconds-to-ker...
    文均閱讀 2,049評(píng)論 0 0
  • 盛秋時(shí)節(jié),紅葉飄零。自古言秋,多為傷感。余今言秋,勝似春朝。紅葉似火,綠水長(zhǎng)青。登雨母山,臨雨母湖,看祖國(guó)萬里河山...
    讀語閱讀 475評(píng)論 0 0
  • 最近幾個(gè)月發(fā)生的事情都沖擊著我的三觀。 工作上,我懷疑自己適不適合當(dāng)財(cái)務(wù)。業(yè)務(wù)部門和財(cái)務(wù)的撕逼,財(cái)務(wù)內(nèi)部的各種撕逼...
    ORANGE_JUN閱讀 206評(píng)論 0 0

友情鏈接更多精彩內(nèi)容