keras教程【4】輔助工具

本例中介紹了 callbacks參數 、網絡可視化工具、Application(提供了諸多已經訓練好的模型,方便進行遷移學習)。

1.model.fit中的callbacks參數

callbacks參數 可以接收 回調函數。本例介紹幾個簡單的回調函數:

  1. TensorBoard: 訓練可視化監控, 便於分析參數優化過程是否正常!

使用TensorBoard監控,方法就是,在model.fit中加入 回調函數TensorBoard 即可。
步驟1:定義回調函數TensorBoard.

from keras.callbacks import TensorBoard
tb = TensorBoard(log_dir = './logs', # log目錄
     histogram_freq = 1, # 按照幾個epoch來計算直方圖,0表示不計算
     batch_size = 32, # 用多大量的數據計算直方圖
     write_graph = True, # 是否存儲網絡結構圖
     write_grads = False, # 是否可視化梯度直方圖
     write_images = False, # 是否可視化參數
     embeddings_layer_names = None,
     embeddings_metadata = None)
     
callbacks = [tb]

步驟2:在model.fit中加入 回調函數TensorBoard.

model.fit(x_train, y_train,
          batch_size = 64,
          epochs = 2,
          verbose = 1,
          validation_data = (x_test, y_test),
          callbacks = callbacks)

步驟3:訓練結束後,使用命令行tensorboard --logdir=./logs,回車後會顯示 查看網址,直接複製粘貼到遊覽器即可 查看 訓練過程.
假如 網址無法顯示,那麼如何解決?方案是,使用命令:tensorboard --logdir logs --host=127.0.0.1 再次生成 網址,然後再查看。

  1. ModelCheckpoint: 設置每個epoch存儲一遍模型。
checkpoint = ModelCheckpoint(filepath='./model_ckpt.h5',
             monitor = 'val_acc',
             verbose = 1,
             save_best_only = True)
# 調用
model.fit(X_train, Y_train, batch_size=128, callbacks=[checkpoint])
  1. LearningRateScheduler: 用來動態調整學習率

4)ReduceLROnPlateau: 用來在訓練停滯不前的時候動態降低學習率

reducelr = ReduceLROnPlateau(monitor='val_loss',
           factor=0.1,
           patience=10,
           mode='auto',
           epsilon = 0.0001,
           cooldown = 0,
           min_lr = 0)
# 調用
model.fit(X_train, Y_train, batch_size=128, callbacks=[reducelr])

假如調用多個回調函數,舉例如下:

# 調用
model.fit(X_train, Y_train, 
batch_size=128, 
callbacks=[checkpoint, reducelr])

5)EarlyStopping:當early stop被激活(如發現loss相比上1個epoch訓練沒有下降),則經過patience個epoch後停止訓練。

EarlyStopping(monitor='val_loss',
patience = 0,
mode = 'auto')

2.網絡可視化

網絡可視化使用函數plot_model.

from keras.utils import plot_model
plot_model(model, to_file = 'model.png')

3.Application.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章