keras可视化的强大工具——TensorBoard
keras可视化的强大工具——TensorBoard
概述
取得进展是一个反复迭代的过程(或循环):首先你有一个想法,并将其表述为一个实验,用于验证你的想法是否正确。你运行这个实验,并处理其生成的信息。这又激发了你的下一个想法。在这个循环中实验的迭代次数越多,你的想法也就变得越来越精确、越来越强大。
这是keras之父的一段话,Keras 可以帮你在最短的时间内将想法转化成实验,而高速GPU 可以帮你尽快得到实验结果。但如何处理实验结果呢?这就需要TensorBoard 发挥作用了
TensorBoard的主要功能
- 在训练过程中以可视化的方式监控指标
- 将模型架构可视化
- 将**和梯度的直方图可视化
- 以三维的形式研究嵌入
使用方法
我们用一个简单的例子来演示这些功能:在IMDB 情感分析任务上训练一个一维卷积神经网络。
from keras.layers import Embedding
from keras.datasets import imdb
from keras import preprocessing
from keras.models import Sequential
from keras.layers import Flatten, Dense
max_features = 2000
maxlen = 500
(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features)
x_train = preprocessing.sequence.pad_sequences(x_train, maxlen=maxlen)
x_test = preprocessing.sequence.pad_sequences(x_test, maxlen=maxlen)
model = Sequential()
model.add(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'])
model.summary()
然后建立文件夹’my_log_dir’,用tensorbord作为回调函数
callbacks = [
keras.callbacks.TensorBoard(
log_dir='my_log_dir',
histogram_freq=1,
# embeddings_freq=1,
)
]
history = model.fit(x_train, y_train,
epochs=20,
batch_size=128,
validation_split=0.2,
callbacks=callbacks)
至于分析和含义,见下一篇博客。