使用tensorboard可视化模型

摘要:
Tensorboard是TF附带的可视化工具。它允许我们从各种角度观察和修改模型,例如在训练期间观察模型的损失动态变化曲线,而无需在迭代后绘制,绘制神经网络的结构图,以及调整超级参数。下面以最简单的形式显示了tensorboard的常见功能。打开tensorboard命令行,输入tensorboard--logdirlog,然后输入enter。前两个参数是固定的,第三个参数表示tensorboa

  Tensorboard是TF自带的可视化工具。它可以让我们从各个角度观察与修改模型,比如观察模型在训练时的loss动态变化曲线而无需在迭代完毕后再画图、绘制神经网络的结构图、调节超参数等。下面以最简单的形式展示tensorboard的常用功能。

开启tensorboard

  打开命令行输入

tensorboard --logdir logs

  然后回车。前两个参数固定,第三个参数表示tensorboard所要观察的文件夹位置。后面再使用TF将信息写入该文件夹中,tensorboard就可以从中读取数据用于可视化。输出如下:

使用tensorboard可视化模型第1张

  进入得到的链接,就是tensorboard的界面了。这时你的logs文件夹应该还是空的,没有写入数据,所以tensorboard无法可视化。下面介绍如何向文件夹中写入数据。

Scalars

  Scalars用来可视化时间步下的状态曲线,比如loss的变化曲线。下面是代码示例:

import numpy as np
import tensorflow as tf 
from datetime import datetime


current_time = datetime.now().strftime("%Y{y}%m{m}%d{d}-%H-%M-%S").format(y = '',m = '',d='')
log_path = 'logs/'+current_time#——————1——————
log_writer = tf.summary.create_file_writer(log_path)#——————2——————
  
for i in range(100):  
  data1 = np.random.normal()#——————3——————
  data2 = np.random.normal()#——————3——————
  with log_writer.as_default():#——————4——————
    tf.summary.scalar('test1', data1, i) #——————5——————
    tf.summary.scalar('test2', data2, i) #——————5——————

  #1/2:创建以时间命名的用于保存记录的文件,并获取用于往该文件中写入记录的对象实例。注意!文件要保存在logs文件夹中,tensorboard才能读取。 

  #3:定义每次迭代要记录的值。

  #4/5:使用#2定义的对象将记录以scalar的方式写入,scalar实际上就是画折线图,其中三个参数分别代表是:记录名、这次迭代要保存的值、第几次迭代。可以看出,一个文件可以保存多条记录,而每条记录都含有多次迭代。

  在tensorboard界面中,右上角点击刷新,或者在下拉选项中选择scalar,tensorboard就会显示输出的记录。界面中还能调节平滑度什么的,这里就不记录了。Tensorboard的一大好处在于它能在代码执行的时候同步可视化图像,上面的代码示例仅有100次迭代,不好体现,可以自己尝试一下。

  可视化后的折线图界面如下:

使用tensorboard可视化模型第2张

Graphs

  可视化模型结构,但是显示出来的结构很乱,几乎没法看,暂时没弄懂看的是什么。这里先记录显示流程。代码示例如下:

import numpy as np 
from tensorflow.keras import Input,Model,layers,losses,callbacks 

logdir="logs/test"  
tensorboard_callback = callbacks.TensorBoard(log_dir=logdir)#——————1——————
class TestModel(Model):#——————2——————
  def __init__(self):
    super().__init__()
    self.layer1 = layers.Dense(10) 
    self.layer2 = layers.Dense(1)
  def call(self,inputs):
    x = self.layer1(inputs) 
    x = self.layer2(x)
    return x
model = TestModel()#——————3——————
model.compile(optimizer='rmsprop',loss='mse')#——————4——————
model.fit(np.ones([3,10]),
          np.ones([3,1]),
          callbacks=[tensorboard_callback]) #——————5——————

  #1:定义保存模型结构的文件,获取一个回调函数对象,用于在fit的时候将模型计算图记录并保存。

  #2:继承Model类自定义我们的模型,只要实现以上两个函数即可。

  #3/4/5:实例化模型、编译,然后fit,让上面定义的回调函数过一遍我们的模型,这样一来它就能将结构记录下来了。

  然后打开tensorboard网页,右上角下拉选中GRAPH,就能看到画出的图了。如下图(显示的玩意儿看不太懂):

使用tensorboard可视化模型第3张

  另外,因为是在fit中保存的结构,所以它在保存的时候会多包一层train文件夹。

Hparams

  超参数优化。暂时用不到,以后再记录。

免责声明:文章转载自《使用tensorboard可视化模型》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python的接口和抽象类C++中stringstream的使用方法和样例下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Bootstrap部分---环境安装及一个可视化的布局;

一:环境安装*****顺序不可变***** <head> 如果需要可以设定,移动设备优先 <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!--1.引入 Bootstrap---> <link href="../../....

Python实现 灰色关联分析 与结果可视化

之前在比赛的时候需要用Python实现灰色关联分析,从网上搜了下只有实现两个列之间的,于是我把它改写成了直接想Pandas中的计算工具直接计算person系数那样的形式,可以对整个矩阵进行运算,并给出了可视化效果,效果请见实现 灰色关联分析法 对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度。在系统发展过程中,若两个因素变化的...

【SequoiaDB】2 巨杉数据库SequoiaDB可视化部署

上篇介绍了如何可视化安装巨杉数据库Sequoia DB SAC,本篇进行演示如何一键部署集群以及数据库。 1)登录SAC (http://192.168.56.101:8000/) 2)点击 一键部署 3)在弹出的窗口,填写集群名、用户名、密码等信息 4)在扫描主机界面,填写集群的IP地址/主机名、密码信息,点击扫描 5)勾选主机列表中...

tsne降维可视化

Python代码:准备训练样本的数据和标签:train_X4000.txt、train_y4000.txt 放于tsne.py当前目录.(具体t-SNE – Laurens van der Maaten http://lvdmaaten.github.io/tsne/,Python implementation), tsne.py代码:(为了使得figu...

R语言ggmap空间可视化机动车交通事故地图

原文链接:http://tecdat.cn/?p=12350 在本文中,我使用ggmap可视化纽约市的交通事故。  数据来自纽约市开放数据。我的数据范围是2012年至2015年。该数据跟踪车辆的类型,发生事故的街道的名称以及事故的经度和纬度坐标。两个坐标都保存为单个字符变量,称为“ LOCATION”。 在下面,我加载数据,删除所有没有位置坐标的事故,并...

数据可视化之PowerQuery篇(五)PowerQuery文本处理技巧:移除和提取

https://zhuanlan.zhihu.com/p/64419762 每当拿到原始数据,不如意十有八九,快速准确的清洗数据也是必备技能,数据清洗正好是 PowerQuery 的强项,本文就来介绍两个常用的 M 函数:Text.Remove 和 Text.Select。 看到以 Text 开头的,就知道是文本处理函数,比如原始数据如下,     如果...