TensorBoard计算图可视化
来源:互联网 发布:linux dns 添加mx 编辑:程序博客网 时间:2024/06/13 13:32
TensorFlow计算图功能强大但复杂。 图表可视化可以帮助您理解和调试它们。 这是一个可视化工作的例子。
命名空间和节点
典型的TensorFlow图可能有成千上万个节点 - 太多的节点很难一次看到,甚至无法使用标准的图形工具进行布局。 为简化起见,变量名声明在作用域内,可视化使用这些信息来定义图中节点上的层次结构。 默认情况下,只显示该层次结构的顶部。 下面是一个使用tf.name_scope
在hidden
名称范围下定义三个操作的示例:
import tensorflow as tfwith tf.name_scope('hidden') as scope: a = tf.constant(5, name='alpha') W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0), name='weights') b = tf.Variable(tf.zeros([1]), name='biases')
这产生了以下三个操作名称:
hidden/alpha
hidden/weights
hidden/biases
默认情况下,可视化文件将全部折叠为标记为隐藏的节点。 额外的细节不会丢失。 你可以双击,或者点击右上角的橙色+
符号来展开节点,然后你会看到三个子节点,分别是alpha
,weight
和bias
。
这是一个复杂节点在其初始状态和扩展状态的例子。
按命名空间对节点进行分组对于制作清晰的图形至关重要。如果您正在构建模型,则命名空间可以控制生成的可视化图像。你的命名空间越好,你的可视化就越好。
上图说明了可视化的第二个方面。 TensorFlow图有两种连接:数据相关性和控制相关性。数据相关性显示两个操作符之间的张量流,并用实线箭头显示,而控制相关性使用虚线。在扩展视图(上图右侧)中,除了连接CheckNumerics
和control_dependency
的虚线外,所有连接都是数据依赖关系。
还有一个简化布局的技巧。大多数TensorFlow图有几个与其他节点连接的节点。例如,许多节点可能对初始化步骤具有控制依赖性。绘制init
节点及其依赖关系之间的所有边将创建一个非常混乱的视图。
为了减少混乱,可视化将所有高度节点分隔到右侧的辅助区域,并不画线来表示其边缘。我们绘制小节点图标来代替连线。分离出的辅助节点通常不会去除关键信息,因为这些节点通常与簿记功能相关。有关如何在主图形和辅助区域之间移动节点的信息,请参阅交互。
最后一个结构简化是series collapsing连续图案 - 也就是说,名称相差最后一个数字并具有同构结构的节点 - 会折叠成一堆节点,如下所示。 对于长序列的网络,这大大简化了视图。 与分层节点一样,双击将扩展该系列。 请参阅交互以了解如何为特定节点集禁用/启用系列折叠。
最后,作为易读性的最后一个帮助,可视化对常量和汇总节点使用特殊的图标。 总结为下面的节点符号表:
交互
通过平移和缩放导航图形。 点击并拖动以平移,并使用滚动手势进行缩放。 双击某个节点,或单击其+
按钮,展开一个代表一组操作的命名空间。 为了在放大和平移时轻松跟踪当前视点,右下角会有一个小地图。
要关闭打开的节点,请再次双击它或单击其-
按钮。 您也可以单击一次以选择一个节点, 它会变成一个较深的颜色,并且关于它的详细信息以及它所连接的节点将出现在右上角的可视化对象信息卡中。
TensorBoard提供了几种方法来改变图形的视觉布局。这不会改变图的计算语义,但是它可以使网络的结构变得清晰。通过右键单击某个节点或按该节点信息卡底部的按钮,可以对其布局进行以下更改:
- 节点可以在主图表和辅助区域之间移动。
- 可以将一系列节点取消分组,使得该系列中的节点不会出现在一起。未分组的序列也可以重新组合。
Selection
也可以帮助理解高层次节点。选择任何高层次节点,其他连接的相应节点图标也将被选中。这可以很容易地看到哪些节点正在保存 - 哪些不是。
点击信息卡中的节点名称将选择它。如有必要,视点将自动平移,以便节点可见。
最后,您可以使用图例上方的颜色菜单为图形选择两种配色方案。默认的显示结构:当两个高层节点具有相同的结构时,它们以相同颜色出现。结构独特的节点是灰色的。第二个视图,它显示了不同操作运行的设备。名称范围与其内部操作的设备成比例。
下面的图片给出了例子。
张量形状信息
当序列化的GraphDef
包含张量形状时,图形可视化器将张量标注为边缘,边缘厚度反映总张量大小。 要在GraphDef
中包含张量形状,在序列化图形时将实际图形对象(如sess.graph
)传递给FileWriter
。 下面的图片显示了具有张量形状信息的CIFAR-10模型:
运行时统计
收集运行时元数据通常是非常有用的,例如总内存使用量,总计算时间和节点的张量形状。 下面的代码示例是简单的MNIST教程的修改的训练和测试部分的一个片段,其中我们记录了摘要和运行时统计信息。 有关如何记录摘要的详细信息,请参阅摘要教程。 完整的源代码在这里。
# Train the model, and also write summaries. # Every 10th step, measure test-set accuracy, and write test summaries # All other steps, run train_step on training data, & add training summaries def feed_dict(train): """Make a TensorFlow feed_dict: maps data onto Tensor placeholders.""" if train or FLAGS.fake_data: xs, ys = mnist.train.next_batch(100, fake_data=FLAGS.fake_data) k = FLAGS.dropout else: xs, ys = mnist.test.images, mnist.test.labels k = 1.0 return {x: xs, y_: ys, keep_prob: k} for i in range(FLAGS.max_steps): if i % 10 == 0: # Record summaries and test-set accuracy summary, acc = sess.run([merged, accuracy], feed_dict=feed_dict(False)) test_writer.add_summary(summary, i) print('Accuracy at step %s: %s' % (i, acc)) else: # Record train set summaries, and train if i % 100 == 99: # Record execution stats run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE) run_metadata = tf.RunMetadata() summary, _ = sess.run([merged, train_step], feed_dict=feed_dict(True), options=run_options, run_metadata=run_metadata) train_writer.add_run_metadata(run_metadata, 'step%d' % i) train_writer.add_summary(summary, i) print('Adding run metadata for', i) else: # Record a summary summary, _ = sess.run([merged, train_step], feed_dict=feed_dict(True)) train_writer.add_summary(summary, i)
此代码将从步骤99开始每100步发出运行时统计信息。
当启动tensorboard并转到图表选项卡时,您将在“会话运行”下看到与添加运行元数据的步骤相对应的选项。 选择其中一个运行将显示在该步骤的网络快照,淡出未使用的节点。 在左侧的控件中,您可以通过总内存或总计算时间对节点着色。 此外,单击节点将显示确切的总内存,计算时间和张量输出大小。
- TensorBoard计算图可视化
- TensorBoard 计算图的可视化
- tensorboard可视化
- Tensorflow 可视化 TensorBoard 尝试~
- TensorBoard--TensorFlow可视化
- tensorflow可视化--tensorboard
- tensorflow可视化模块 tensorboard
- TensorBoard-可视化简单例子
- tensorBoard 可视化工具
- Tensorflow学习:Tensorboard可视化
- TensorBoard可视化学习
- Tensorboard 可视化工具
- tensorflow1.1/tensorboard可视化
- TensorBoard数据可视化
- TensorBoard:可视化学习
- TensorBoard:嵌入可视化
- TensorBoard:图形可视化
- Tensorflow 可视化 Tensorboard 1
- 满足1+2+3+n<8888的最大正整数n
- url获取网络图片类的创建方法
- 【BZOJ2152】聪聪可可(点分治)
- 《人性的弱点》哲理名言
- 类描述计算机中CPU的速度和硬盘容量
- TensorBoard计算图可视化
- 动物声音模拟器
- 丁肇中:人工智能不可能发现相对论,不可能发现量子力学,也不可能发现暗物质
- 未来20年,哪些职位最容易被机器替代?
- 比AlphaGo Zero更强的AlphaZero来了!8小时解决一切棋类!
- Android 版本与 Bluetooth 版本之间的关系
- 动物模拟器 接口
- 【第1134期】如何用人类的方式进行 Code Review (二)
- CUDA并行排序(4)——双调排序(二维double型数据)