TensorBoard(2)训练指标
前言
机器学习涉及评估模型的指标,例如损失(loss)、准确度等,以及它们如何随着训练的进行而变化。
例如,这些指标可以帮助我们了解模型是否过拟合,或者是否不必要地训练太长时间。我们可以比较不同训练中的这些指标,以帮助调试和改善模型。
一、TensorBoard的Scalars
在TensorBoard的Scalars中,能使用简单的API来可视化这些指标。帮助我们在开发Keras模型时学习如何在TensorBoard中使用这些API。
在训练模型中,通过日志记录关键指标的信息;model.fit()有回调函数的接口,我们先创建一个TensorBoard回调函数,然后传递给model.fit()就可以了。
1. 1 实现流程
- 创建Keras的TensorBoard回调函数
- 回调函数中指定日志目录
- 将TensorBoard回调函数 传递给 Keras Model.fit()
TensorBoard从日志目录层次结构中读取日志数据。在上面代码中,日志目录是logs/scalars,后缀有时间戳的子目录。
带时间戳的子目录使我们可以在使用TensorBoard,并在模型进行迭代是轻松识别训练过程。
1.2 启动TensorBoard
执行如下命令:
等一会,能看到如下界面:
在观看训练进度是,需要注意训练金额验证损失如何迅速减少,然后保持稳定。
实际上,可能在25个epochs后就停止了训练,因为在此之后训练并没有太大改善。
可以点击图像左下角的 [ ] 会放大图像的;
然后,将鼠标悬停在图像上可以查看特定的数据点。我们也可尝试使用鼠标放大,或选择其中的一部分一查看更多详细信息。
1.3 完整代码
首先加载tensorboard
清楚之前的日志(可选)
再执行如下代码:
然后打开tensorboard即可。
在notebook中,使用%tensorboard 命令:
在命令行中,运行是不带"%"的,命令基本一样:
二、自定义Scalars
如果要记录自定义值,例如动态学习率,如何实现呢?
需要使用TensorBoard Summary API ,来训练模型并记录自定义学习率。
实现流程
- 使用 tf.summary.create_file_writer( ) 创建文件编辑器。
- 编写自定义学习率函数;在函数内部使用 tf.summary.scalar( ) 记录自定义学习率。
- 然后把学习率函数,传递给 Keras LearningRateScheduler 回调中。
- 将 LearningRateScheduler回调 传递给Model.fit( )
下面结合代码一步 一步实现:
1、使用 tf.summary.create_file_writer( ) 创建文件编辑器。
2、编写自定义学习率函数;在函数内部使用 tf.summary.scalar( ) 记录自定义学习率。
3、然后把学习率函数,传递给 Keras LearningRateScheduler 回调中。
4、将 LearningRateScheduler回调 传递给Model.fit( )
整合上面的代码:
启动TensorBoard
执行如下命令:
然后如下界面:
还能看到动态学习率的图像:
参考:https://www.tensorflow.org/tensorboard/scalars_and_keras?hl=zh_cn
- 点赞
- 收藏
- 关注作者
评论(0)