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.

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