用TensorBoard可视化tensorflow神经网络模型结构与训练过程的方法

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 用TensorBoard可视化tensorflow神经网络模型结构与训练过程的方法

  本文介绍基于TensorBoard工具,对tensorflow库构建的神经网络模型加以可视化,并对其训练过程中的损失函数Loss)、精度指标Metric)等的变化情况加以可视化的方法。

  在之前的两篇文章基于Python TensorFlow Estimator的深度学习回归与分类代码——DNNRegressorhttps://blog.csdn.net/zhebushibiaoshifu/article/details/114001720)与基于Python TensorFlow Keras的深度学习回归代码——keras.Sequential深度神经网络https://blog.csdn.net/zhebushibiaoshifu/article/details/114016531)中,我们介绍了利用Python中的tensorflow库,实现机器学习深度学习的具体思路与代码实现;此外,我们也曾介绍过神经网络模型可视化的方法,例如基于Python的神经网络模型结构框架可视化绘图简便方法https://blog.csdn.net/zhebushibiaoshifu/article/details/116212113)以及神经网络模型结构框架可视化的在线与软件绘图方法https://blog.csdn.net/zhebushibiaoshifu/article/details/116723916)等。但是,一直没有介绍过基于tensorflow库中的TensorBoard工具,对神经网络模型,以及其训练过程中各项参数变化情况加以可视化的方法;这篇文章就对其加以具体介绍。

  TensorBoardTensorFlow提供的一个可视化工具,可以帮助用户更好地理解和调试TensorFlow模型。它提供了各种图表和面板,可以展示模型的训练过程、性能指标、网络结构、数据分布等信息。

  首先,为了使用TensorBoard进行可视化,需要在代码中添加TensorBoard回调函数。在模型训练时,每个epoch结束时将记录模型的性能和其他相关信息,并将它们写入TensorBoard日志目录中。以下是添加TensorBoard回调函数的示例代码。

from tensorflow.keras.callbacks import TensorBoard
# 创建TensorBoard回调函数并指定日志目录
tensorboard_callback = TensorBoard(log_dir = "E:/01_Reflectivity/03_Code")
# 在fit()函数中将TensorBoard回调函数添加到回调列表中
model.fit(train_data, train_targets, epochs=50, batch_size=64, validation_data=(test_data, test_targets), callbacks=[tensorboard_callback])

  当然,很显然上述代码只是一个添加TensorBoard回调函数的示例代码,并不是tensorflow库实现神经网络模型的全部代码;如果大家需要全部的代码,可以参考基于Python TensorFlow Keras的深度学习回归代码——keras.Sequential深度神经网络https://blog.csdn.net/zhebushibiaoshifu/article/details/114016531)这篇文章,这里就不再赘述了。

  上述代码中,log_dir是大家存放日志的目录,大家可以自行修改。

  随后,启动TensorBoard服务器。在终端中输入以下命令来启动TensorBoard服务器。

tensorboard --logdir=E:\01_Reflectivity\03_Code

  其中,最后的路径就是前面我们提到的存放日志的路径。随后,运行上述代码,如下图所示。

  接下来,在浏览器中查看TensorBoard。在浏览器中访问http://localhost:6006/,就可以看到TensorBoard的主界面了。在界面上,你可以查看模型的架构、性能指标、激活直方图等信息。如下图所示。

  TensorBoard中的主要面板包括以下几个:

Scalars:展示训练过程中的标量指标,比如训练误差、验证误差、学习率等。

Graphs:展示计算图,可以看到每一层的输入输出,以及参数的维度和数值。

Distributions:展示数据分布情况,可以查看权重、梯度、激活值等的分布情况,有助于诊断过拟合或欠拟合等问题。

Histograms:展示数据分布的直方图,类似于Distributions,但更详细。

Images:展示图像数据,可以查看输入图片、卷积层的输出等。

Projector:展示高维数据的嵌入情况,可以对数据进行降维可视化。

Text:展示文本数据,可以查看文本分类、生成等任务的结果。

  总之,TensorBoard提供了丰富的可视化功能,可以帮助用户更好地理解和优化模型。

  其中,我们往往对ScalarsGraphs面板比较感兴趣,我们也就在此主要谈谈这两个部分。

  当我们训练模型时,可能会想要实时监控模型的训练情况,比如损失函数的变化、准确率的变化等。TensorBoard提供了Scalars界面,可以方便地对这些指标进行可视化;如下图所示。

  在代码中,我们可以使用tf.summary.scalar函数将指标写入TensorBoard日志文件中。

  其次,介绍一下Graphs界面。在TensorFlow中,Graphs(图)是表示神经网络的计算图,包括各个层之间的连接、每个层的参数以及激活函数等等。Graphs界面可以用于可视化TensorFlow计算图的结构,从而更好地理解神经网络的计算过程。如下图所示。

  在Graphs界面中,可以看到神经网络中每一层的名称和形状,以及层与层之间的连接。通过单击每个层,可以查看该层的详细信息,包括该层的参数、激活函数等等。此外,Graphs界面还可以显示每个变量和操作的名称,以及它们在计算图中的位置。

  通过Graphs界面,可以更好地理解神经网络的计算过程,发现神经网络中可能存在的问题,并对神经网络的结构进行优化。同时,Graphs界面还可以与TensorBoard的其他界面(如ScalarsHistograms等)进行配合使用,进一步提升神经网络的可视化效果和调试能力。

  此外,TensorBoard还具有非常巨大的功能,大家具体可以查阅其官方帮助文档。

欢迎关注:疯狂学习GIS

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
将Keras训练好的.hdf5模型转换为TensorFlow的.pb模型,然后再转换为TensorRT支持的.uff格式,并提供了转换代码和测试步骤。
82 3
深度学习之格式转换笔记(三):keras(.hdf5)模型转TensorFlow(.pb) 转TensorRT(.uff)格式
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于BP神经网络的苦瓜生长含水量预测模型matlab仿真
本项目展示了基于BP神经网络的苦瓜生长含水量预测模型,通过温度(T)、风速(v)、模型厚度(h)等输入特征,预测苦瓜的含水量。采用Matlab2022a开发,核心代码附带中文注释及操作视频。模型利用BP神经网络的非线性映射能力,对试验数据进行训练,实现对未知样本含水量变化规律的预测,为干燥过程的理论研究提供支持。
|
4天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
16 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
4天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
16 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
8天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
27 3
|
20天前
|
机器学习/深度学习 人工智能 算法
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
车辆车型识别,使用Python作为主要编程语言,通过收集多种车辆车型图像数据集,然后基于TensorFlow搭建卷积网络算法模型,并对数据集进行训练,最后得到一个识别精度较高的模型文件。再基于Django搭建web网页端操作界面,实现用户上传一张车辆图片识别其类型。
65 0
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
|
29天前
|
机器学习/深度学习 编解码 算法
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
39 0
|
30天前
|
机器学习/深度学习 算法
神经网络的结构与功能
神经网络是一种广泛应用于机器学习和深度学习的模型,旨在模拟人类大脑的信息处理方式。它们由多层不同类型的节点或“神经元”组成,每层都有特定的功能和责任。
31 0
|
1月前
|
机器学习/深度学习 移动开发 TensorFlow
深度学习之格式转换笔记(四):Keras(.h5)模型转化为TensorFlow(.pb)模型
本文介绍了如何使用Python脚本将Keras模型转换为TensorFlow的.pb格式模型,包括加载模型、重命名输出节点和量化等步骤,以便在TensorFlow中进行部署和推理。
76 0
|
4天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
21 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络

热门文章

最新文章