TensorBoard是Tensorflow的可视化工具,可以通过Tensorflow程序运行中输出的日志文件可视化Tensorflow程序的运行状态。不得不说,TensorBoard是TensorFlow这个框架相对其他框架来讲做的很出色的一个工具。
本文通过一个Mnist分类的例子,说明如何使用TensorBoard。
本文的代码可以在GitHub下载:
https://github.com/loveunk/machine-learning-deep-learning-notes/blob/master/tensorflow/code/tensorflow.keras.mnist.classifier.py
TensorBoard的工作原理
在TensorFlow的程序里将相关的events等以log的形式保存,在运行TensorBoard后自动加载log文件并以良好的图表呈现在web页面中。方便开发者查看训练过程和结果数据。
因此TensorBoard的使用过程分两步:
- 生成log
- 加载log、呈现数据
TensorFlow中生成log文件
例如利用tf api显示的保存log:
file_writer = tf.summary.FileWriter('./log_dir', sess.graph)
或者在keras中以callback的形式保存log:
model.fit_generator(datagen.flow(X_train, Y_train, batch_size=batch_size),
epochs=epochs,
validation_data=(X_val, Y_val),
verbose=2,
steps_per_epoch=X_train.shape[0] // batch_size,
callbacks=[learning_rate_reduction, tf.keras.callbacks.TensorBoard(log_dir='./log_dir')])
本文基于后一种做演示。
启动TensorBoard,读取log文件
需要注意,我的环境为Anaconda,因此需要再Anaconda Prompt中启动TensorBoard:
tensorboard --logdir="C:\Users\loveunk\dl\tensorflow.keras.samples\log_dir\"
启动后会再terminal中提示你端口号:
TensorBoard 1.13.1 at http://localhost:6006 (Press CTRL+C to quit)
浏览器中启动TensorBoard
浏览器中打开如上的地址http://localhost:6006
,直接呈现结果。
例如下图以曲线图的形式呈现了25个epochs的accuracy、loss、validation accuracy、loss等等。
同时可以查看Model的图形化展示:
当然上面只是简单的介绍了TensorBoard的用法,其实它功能丰富,待慢慢补充。