Keras中的callbacks类中EarlyStopping和TensorBoard函数

Keras中callbacks类EarlyStopping和TensorBoard函数

结合官方文档和我个人使用情况,关于EarlyStopping和TensorBoard函数的介绍,官方文档链接如下:
keras中callback的官方文档

1.TensorBoard函数
模型训练实时可视化的函数。
以下是我的设置

TensorBoard_callback = keras.callbacks.TensorBoard(log_dir=/file_logdir,histogram_freq=1, write_graph=True, write_grads=False, write_images=True, update_freq=500)

在model.fit中设置callback

model.fit(self.trainX, self.trainy, batch_size=batch_size,
                            epochs=self.epochs, verbose=verbose,validation_split=0.1,
                            callbacks=[TensorBoard_callback])

在命令控制台中,输入

tensorboard --logdir=/full_logs_path

控制台会返回一个URL,复制到浏览器(我用的是Chrome)即可看到。

踩过的坑:我的版本是tensorflow2.1,通过anaconda下载,其附带的tensorboard版本是2.2,在命令台输入时,在’logdir’后’='前,多输入了一个空格,导致其加载失败T_T。

可视化界面中可以看到模型训练的损失和模型的大致格式。

2.EarlyStopping函数
以下是我的设置

EarlyStopping_callback = callbacks.EarlyStopping(monitor='val_loss',min_delta=0.05,patience=50,verbose=0,restore_best_weights=True)

其中,monitor表示监视的训练情况,min_delta表示是最小变化量,patience表示容忍的时间,restore_best_weights=True表示返回记录中表现最好的训练结果,false表示返回训练末的训练结果。
verbose:有三个参数值,0表示不在标准输出流输出日志信息,1表示输出精度条记录,2表示为每个epoch输出一行记录。
另外,还有一项关键参数为model,有min,max,和auto三种,默认为auto,分别表示减少,增加和自动。
本文以我设置的参数为例,说明他们的作用:
设置的监督条件为’val_loss’,验证集的损失函数,min_delta=0.05和patience=50,表示在50轮中,如果min_delta下降的幅度不超过0.05,认为模型已经出现了过拟合的现象,停止实验。这里使用的model是auto,自动识别为min。

综合以上两者,一起作用与model.fit,代码如下:

model.fit(self.trainX, self.trainy, batch_size=batch_size,
                            epochs=self.epochs, verbose=verbose,validation_split=0.1,
                            callbacks=[TensorBoard_callback,EarlyStopping_callback])

此外,callback中还有一些相关函数,可直接参考官方文档使用。
keras中callback的官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值