小白学习tensorflow教程二TensorBoard可视化模型训练

Posted 刘润森!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小白学习tensorflow教程二TensorBoard可视化模型训练相关的知识,希望对你有一定的参考价值。

@Author:Runsen

本想在Torch和Keras更新TensorBoard,还是决定扔在了tensorflow。

TensorBoard是用于可视化图形和其他工具以理解、调试和优化模型的界面。它是一种为机器学习工作流提供测量和可视化的工具。它有助于跟踪损失和准确性、模型图可视化、低维空间中的项目嵌入等指标。

在本篇博客中,将介绍 TensorBoard 的基础知识,并了解如何可视化训练模型中的一些基本信息。

下面,我们使用MNIST 数据的图像分类模型 ,将首先导入所需的库并加载数据集。模型的建立使用最简单的顺序模型。

import tensorflow as tf
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()
from tensorflow.keras.utils import np_utils
X_train=X_train.astype('float32')
X_test=X_test.astype('float32')

X_train/=255
X_test/=255

X_train = X_train.reshape(X_train.shape[0], 28, 28, 1).astype('float32')
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1).astype('float32')

y_train = np_utils.to_categorical(y_train, 10)
y_test = np_utils.to_categorical(y_test, 10)

model = Sequential()
model.add(Convolution2D(32, 3, 3, input_shape=(28, 28, 1)))
model.add(Activation('relu'))
model.add(Dropout(0.25))

model.add(Convolution2D(32, 3, 3))
model.add(Activation('relu'))

model.add(Convolution2D(32, 3, 3))
model.add(Activation('relu'))
model.add(Dropout(0.25))

model.add(Flatten())

model.add(Dense(128))

model.add(Dense(128))
model.add(Activation('relu'))

model.add(Dense(10))
model.add(Activation('softmax'))

model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])

keras API 训练模型时,我们创建了一个 tensorboard 回调,以确保将指标记录在指定的目录中。这里保存到logs/fit

import datetime

!rm -rf ./logs/
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback=tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
model.fit(x=X_train, y=y_train,epochs=30,validation_data=(X_test, y_test),  callbacks=[tensorboard_callback])

如果使用colab,并不支持使用终端

对于 Windows 用户:tensorboard --logdir= logs/fitg

Tensorboard 位于:http://localhost:6006

如果使用colab,需要加载TensorBoard扩展程序

%load_ext tensorboard
%tensorboard --logdir logs/fit
from tensorboard import notebook
notebook.list
notebook.display(port=6006, height=1000) 

如果训练迭代5k到55k,TensorBoard会给出测试集的大概结果。


如果在torch中是使用TensorBoard,在PyTorch 1.8.1 版本的发布,需要使用 PyTorch Profiler,需要安装torch_tb_profilertorch_tb_profilerTensorBoard的一个插件,可以可视化GPU的情况,具体参考官方教程

  • https://pytorch.org/tutorials/intermediate/tensorboard_profiler_tutorial.html
  • https://github.com/pytorch/kineto/tree/main/tb_plugin

以上是关于小白学习tensorflow教程二TensorBoard可视化模型训练的主要内容,如果未能解决你的问题,请参考以下文章

小白学习tensorflow教程一tensorflow基本操作快速构建线性回归和分类模型

小白学习tensorflow教程三TF2新特性@tf.function和AutoGraph

小白学习tensorflow教程四使用 tfhub中的模型EfficientDet-Lite2 进行对象检测

小白学习tensorflow教程四使用 tfhub中的模型EfficientDet-Lite2 进行对象检测

小白入门深度学习 | 第六篇:TensorFlow2 回调极速入门

小白入门深度学习 | 第六篇:TensorFlow2 回调极速入门