一. 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
安装问题
- 参考https://blog.csdn.net/shangxiaqiusuo1/article/details/85283432
- 如果还不行,那么重新装一下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')
注:在模型搭建完毕之后即可查看