keras回调函数、tensorboard及模型绘制函数

一. ModelCheckpoint和EarlyStopping回调函数

import keras
#一般而言EarlyStopping和ModelCheckpoint一起使用,在模型搭建之后编译之前
callbacks_list = [
    #检查验证集的精度是否上升
    keras.callbacks.EarlyStopping(
        monitor = 'val_accuracy', #这里监控的应该是验证集的精度
        patience = 1 #最低点的下一次结束
    ),
    #每轮过后保存权重
    keras.callbacks.ModelCheckpoint(
        filepath= r'E:\python_work\deep-learning\keras\my_model.h5',
        monitor = 'val_loss', #结合下一行表示:只保存当前效果最好的权重,也就是val_loss最低的权重
        save_best_only = True
    )
]
history = model.fit(partial_x_train,
                    partial_y_train,
                    epochs = 10,
                    verbose = 2,
                    batch_size = 512, 
                    callbacks = callbacks_list, ##调用回调
                    validation_data = (x_val, y_val)) 

二. ReduceLROnPlateau回调函数

callbacks_list = [

    keras.callbacks.ReduceLROnPlateau(
        monitor = 'val_loss',
        factor = 0.1, #学习率除以10
        patience = 2 #验证损失2轮都没有变化触发该回调
    )
]

注:使用回调的目的是为了不用根据第一次训练的最佳epoch训练第二遍,节省时间。

三. Tensorboar

callbacks = [
    keras.callbacks.TensorBoard(
        log_dir = r'E:\python_work\deep-learning\keras\my_log_dir', #日志文件将被写入这个位置
        histogram_freq = 1, #每一轮之后记录激活直方图
        #embeddings_freq = 1 #每一轮之后记录嵌入数据
    )
]
history = model.fit(
    x_train,
    y_train,
    epochs=20,
    batch_size=128,
    validation_split=0.2,
    callbacks=callbacks
)

在anaconda prompt中输入 tensorboard --logdir=路径

四. 模型绘制函数plot_model
安装问题

  1. 参考https://blog.csdn.net/shangxiaqiusuo1/article/details/85283432
  2. 如果还不行,那么重新装一下graphviz 在anaconda prompt中 conda install GraphViz,参考https://blog.csdn.net/hehedadaq/article/details/89164653
plot_model(model, show_shapes = True, to_file=r'E:\python_work\deep-learning\keras\mdoel2.png')

注:在模型搭建完毕之后即可查看

你可能感兴趣的:(编程问题整理)