可视化 Keras 训练过程
Keras 提供 Callback 接口来追踪训练过程中的每一步结果,包括每一个 batch 和每一个 epoch。虽然名为“回调函数”,但实际上想要扩展这功能需要继承 keras.callbacks.Callback 类,该类提供两个与模型训练过程相关的属性:
- params:compile 模型时设定的参数;
- model:模型对象。
通过这一接口可以实时可视化 fit 过程中每一个 batch 和每一个 epoch 迭代过程中的误差大小变化。以《Neural Networks and Deep Learning - Chap3 Improving the way neural networks learn》为例,假设我们要训练一个最简单的神经网络:
![b523c5b5420b13648244ddba212c5664.png](https://i-blog.csdnimg.cn/blog_migrate/615534aaf8274708bd4adbabc27bd67a.jpeg)
这个只有一个神经元的神经网络只有一个权重 w 和一个偏置 b 两个待训练的参数,假设要训练的数据只有 (1, 0),在这里比较 MSE 和 Cross Entropy 两种代价函数的学习效果。
首先构建这个模型:
from keras import Sequential, initializers, optimizersfrom keras.layers import Activation, Denseimport numpy as npdef viz_keras_fit(w, b, runtime_plot=False, loss="mean_squared_error