Tensorflow(1) Tensorboard的用法

Tensorboard是辅助我们调试model的好助手,下面记录一下使用心得。

(我觉得我的英语水平翻译API documents是智障啊。。)

使用流程:

import tensorflow as tf
tensors_need_to_show = some tensors # 这里是一些你想要放到tensorboard上面的tensor
tensor.summary.scalar/image/histogram/audio(tensors_need_to_show) # 这是tensor不同的显示方式
merged = tf.summary.merge_all() # 将所有的summary汇总到一起,这个merged也是一个tensor
with tf.Session() as sess:
    summary_writer = tf.summary.FileWriter('your logs path', sess.graph) # FileWriter,用于写入log文件
    summary = sess.run([merged], feed_dict={}) # sess.run()用于计算tensor
    summary_writer.add_summary(summary[0], global_step) 

tf.summary.scalar

scalar(name, tensor, collections=None)

输出一个Summary pb格式的数据,里面包括一个单一的标量值

Args:
name:已生成的tensor node的名字,这个名字会在TensorBoard里面显示为当前tensor的名字。
tensor: 一个真实的数值tensor,包含单一值。
collections: Optional list of graph collections keys. The new summary op is added to these collections. Defaults to [GraphKeys.SUMMARIES].

Returns:
A scalar Tensor of type string. Which contains a Summary protobuf.

Raises:
ValueError: If tensor has the wrong shape or type.

附录:

Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。它们用于 RPC 系统和持续数据存储系统。
Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: TensorFlow 2.使用TensorBoard非常简单。首先,您需要在代码导入TensorBoard和其他必要的库: ``` import tensorflow as tf from tensorflow import keras from tensorflow.keras.callbacks import TensorBoard ``` 然后,您需要创建一个TensorBoard回调对象,并将其传递给模型的fit方法: ``` tensorboard_callback = TensorBoard(log_dir="./logs") model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test), callbacks=[tensorboard_callback]) ``` 在这里,log_dir参数指定TensorBoard日志文件的目录。在训练过程TensorBoard将在该目录创建一个名为“logs”的子目录,并将所有日志文件写入该目录。 最后,您可以在终端运行以下命令来启动TensorBoard: ``` tensorboard --logdir=./logs ``` 这将启动TensorBoard服务器,并在浏览器打开TensorBoard的Web界面。在此界面,您可以查看模型的训练和验证指标,以及其他有用的信息,如模型结构和激活直方图。 ### 回答2: TensorFlow是广泛使用的深度学习框架之一,而Tensorboard则是TensorFlow的可视化工具,它可以让我们更好地理解和调试模型,同时也有助于我们对模型进行可视化分析和解释。在TensorFlow 2.0Tensorboard也得到了很大的升级和改善,本文将介绍如何使用Tensorboard进行模型可视化和监控。 一、安装TensorBoardTensorFlow 2.0TensorBoard已经是默认安装的。如果TensorFlow不是最新的版本,可以通过以下命令进行升级: ``` !pip install --upgrade tensorflow ``` 二、导入TensorBoard 要使用TensorBoard,我们需要导入TensorFlow的官方API,通过导入“TensorBoard”和“Callback”两个模块,可以使用TensorBoard可视化和监控模型训练的进度和时间。 ``` from tensorflow.keras.callbacks import TensorBoard ``` 三、添加TensorBoard回调函数 接下来,在训练模型时,我们需要使用TensorBoard回调函数。TensorBoard回调函数允许在训练的每个时期记录任何可以用于TensorBoard可视化的指标。 在TensorBoard显示的指标可以是模型性能指标的实时图表,例如训练和验证损失,准确性等。 回调函数可以在以下位置定义: ``` tensorboard_callback = TensorBoard(log_dir='path/to/logs', histogram_freq=1) ``` 其,log_dir参数指定了TensorBoard日志的位置,这个目录是存储所有TensorBoard相关数据的文件夹。路径可以是相对路径或绝对路径,histogram_freq 参数表示模型权重直方图可视化的频率(每 n 个时期记录一次)。默认为0,没有直方图可视化。 四、训练模型 接下来,我们需要开始训练模型。我们已经创建了 TensorBoard回调函数,现在需要在拟合模型时将其传递到模型的回调函数列表: ``` model.fit(x, y, epochs=10, validation_split=0.2, callbacks=[tensorboard_callback]) ``` 五、启动TensorBoard 最后,在终端输入以下命令以启动TensorBoard: ``` tensorboard --logdir=path/to/logs ``` 在浏览器输入地址,即可查看模型的各种统计信息。 六、TensorBoard功能丰富 使用 TensorBoard,可以获得模型的各种统计数据,包括: 1. 图形和表示计算图的“graph”视图 2. 训练和验证损失(与时间的关系)的“Scalars”视图 3. 权重和梯度分布的“Histograms”视图 4. 嵌入(用于高维数据降维)的“Embedding”视图 5. 总结数据(可以通过Python API编写自定义总结)的“Events”视图 TensorBoard可以让我们轻松地监控模型的性能,并提供一些有用的工具来帮助我们更好地理解和优化模型。在TensorFlow 2.0TensorBoard的易用性和功能都得到了很大的改善和提高,可以帮助我们更好地深入了解和使用深度学习技术。 ### 回答3: Tensorflow是一款非常流行的深度学习框架,也是大家经常使用的一个框架。在Tensorflow2.0Tensorboard成为了一个新的特性,能够帮助我们更加直观地理解我们的深度学习模型,我将在以下几点详细介绍Tensorflow2.0如何使用Tensorboard。 1. Tensorboard 简介 Tensorboard是一个Tensorflow内置的可视化工具,我们可以通过Tensorboard监控模型训练时网络的性能,比如模型的损失函数,准确率,梯度变化,以及各类超参数的变化等等,让我们能够更加方便的监测网络的训练情况。Tensorboard提供了非常友好的用户界面,支持很多的交互操作,同时也能够使用在其他浏览器打开,比如Google Chrome和Mozilla Firefox. 2. Tensorboard 的安装和使用 Tensorflow2.0将Tensorboard集成在了Tensorflow,所以我们不必单独安装。在Tensorflow训练模型时,可以通过在代码加入Tensorboard的语句,记录需要监控的变量到Tensorboard日志文件,然后打开Tensorboard就可以看到监控数据了。首先在代码定义一个Tensorflow的回调函数,使得我们可以在训练过程记录各类变量,代码如下: ``` import tensorflow as tf # 定义回调函数,记录模型的变化 callbacks = [ tf.keras.callbacks.TensorBoard(log_dir='./logs') ] # 构建并训练模型 model.fit(x_train, y_train, epochs=10, batch_size=32, callbacks=callbacks) ``` 在上面的代码,我们通过 `tf.keras.callbacks.TensorBoard`方法构造了一个回调函数,用来记录模型的变化情况。其 `log_dir`参数是指定了我们的日志记录文件的路径,我们可以将它设置为当前工作目录下的 `logs`目录(这个目录不用事先创建)。接着,我们在模型的 `fit`方法指定这个回调函数,这样在训练模型过程就会将各类变量的记录写入日志文件。 3. Tensorboard的日志记录和可视化 在使用Tensorboard后,我们可以通过 `tensorboard --logdir=./logs`来手动启动Tensorboard,并在浏览器访问本地的服务器,比如访问 `localhost:6006`,就会看到Tensorboard的web端界面,如下所示: ![](https://s1.ax1x.com/2020/11/24/DmNvLn.md.png) 在上图,我们可以看到多个选项卡,比如 `Scalars`、`Images`、`Graphs`、`Distributions`等。其,`Scalars`选项卡展示了训练过程所有的标量变量的变化情况,比如训练损失函数、测试准确率等等,如下图所示: ![](https://s1.ax1x.com/2020/11/24/DmNtoc.md.png) 在 `Images`选项卡,我们可以看到训练过程模型生成的图像,如下图所示: ![](https://s1.ax1x.com/2020/11/24/DmNS1s.md.png) 在上图,我们可以看到模型生成的图像都被显示在了 `Images`选项卡。 在`Graphs`选项卡,我们可以看到我们构建的Tensorflow计算图,如下所示: ![](https://s1.ax1x.com/2020/11/24/DmNdcV.md.png) 到这里,我们已经介绍了TensorboardTensorflow的使用方法。感兴趣的读者可以尝试使用Tensorboard来监控深度学习模型的训练,提高模型训练效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值