一、TensorBoard介绍
TensorBoard是一个内置于TensorFlow中的基于浏览器的可视化工具。只有当Keras使用TensorFlow后端时,这一方法才能用于Keras模型。
TensorBoard的主要用途是在训练过程中帮助你可视化的监控模型内部发生的一切,这样就可以更清楚地了解模型做了什么、没做什么。
TensorBoard具有以下功能:
在训练过程中以可视化的方式监控指标
将模型框架可视化
将每层的输出和梯度的直方图可视化
以三维的形式研究嵌入
二、TensorBoard应用示例
1.构建模型
import keras
from keras import layers
from keras.datasets import imdb
from keras.preprocessing import sequence
# 数据处理
max_features = 2000 # 包含最常见的2000个单词
maxlen = 500 # 将句子截断到500个词
(x_train,y_train),(x_test,y_test) = imdb.load_data(num_words=max_features)
x_train = sequence.pad_sequences(x_train,maxlen=maxlen)
x_test = sequence.pad_sequences(x_test,maxlen=maxlen)
# 构建模型
model = keras.models.Sequential()
model.add(layers.Embedding(max_features,128,
input_length=maxlen,
name='embed'))
model.add(layers.Conv1D(32,7,activation='relu'))
model.add(layers.MaxPooling1D(5))
model.add(layers.Conv1D(32,7,activation='relu'))
model.add(layers.GlobalMaxPooling1D())
model.add(layers.Dense(1))
model.compile(optimizer='rmsprop',loss='binary_crossentropy',metrics=['acc'])
2.为TensorBoard日志文件创建目录
# os.mkdir('my_log_dir')
3.使用TensorBoard回调函数来训练模型
callbacks = [
keras.callbacks.TensorBoard(
log_dir='my_log_dir',
histogram_freq=1,
)
]
history = model.fit(x_train,y_train,
epochs=20,
batch_size=128,
validation_split=0.2,
callbacks=callbacks)
Train on 20000 samples, validate on 5000 samples
Epoch 1/20
20000/20000 [==============================] - 72s 4ms/step - loss: 0.6371 - acc: 0.6543 - val_loss: 0.4219 - val_acc: 0.8292
...
Epoch 20/20
20000/20000 [==============================] - 71s 4ms/step - loss: 0.0908 - acc: 0.1406 - val_loss: 1.2215 - val_acc: 0.2234
4.在命令行中启动TensorBoard服务
tensorboard --logdir=my_log_dir
5.在浏览器中打开http://localhost:6006
此时tensorboard服务会读取log中的内容并进行可视化
6.TensorBoard展示
监控指标
**直方图
GRAPHS标签页显示的是Keras模型背后的底层TensorFLow计算图的交互式可视化
7.绘制层组成的图(而不是计算图)
如果要绘制层组成的图,那么需要安装pydot、pydot-ng和graphviz库,这里就不详细介绍了