Keras入门课5:网络可视化及训练监控
本系列课程代码,欢迎star:
https://github.com/tsycnh/Keras-Tutorials
本节专注于Keras中神经网络的可视化,包括网络结构可视化以及如何使用TensorBoard来监控训练过程。
这里我们借用第2课的代码内容来进行示例和讲解。
网络前面的定义、数据初始化都一样,主要是fit函数
启用TensorBoard
在model的fit函数中加入TensorBoard的回调函数即可,训练数据就会自动保存在log_dir指定的目录内,然后在命令行启动命令 tensorboard --logdir=./log 即可。TensorBoard会记录loss及model.metrics里面的值,本例中即acc,loss,val_acc,val_loss四个值,每个epoch更新一次。
除了这些SCALARS,还会记录网络的GRAPH,直接可视化网络结构,但是相比用原生TensorFlow生成的图而言,相差还是比较大的,比较难看,所以不推荐在Keras中使用TensorBoard查看网络结构。
我只训练了2个epoch,所以只记录下了两个值。曲线图如下
↓直方图,用来统计参数的分布
import keras
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten
from keras.layers import Conv2D, MaxPooling2D
from keras import backend as K
# 引入Tensorboard
from keras.callbacks import TensorBoard
from keras.utils import plot_model
(x_train,y_train),(x_test,y_test) = mnist.load_data() # out: np.ndarray
x_train <