计算图定义了计算过程,它不计算任何东西,不包含任何值,只定义了在代码中指定的操作。TensorFlow 在加载库的时候会创建图,并且将这个图指定为默认图。可以通过使用 tf.get_default_graph()函数获得默认图。在大多数的 TensorFlow 程序中,都只用计算图来处理。然而,在定义的多个模型之间没有内在依赖性的情况下,创建多个独立的图会显得尤为有用。下面的例子是用一个变量和三个操作定义一个图形:variable 返回变量的当前值;initialize将初始值42赋给该变量;assign将新值13赋给该变量。代码如下:
会话允许执行计算图或计算图的一部分。它为此分配资源(在一台或多台机器上)并保存中间结果和变量的实际值。当要运行上面定义的三个操作中的任何一个时,需要为该计算图创建一个会话。因此会话需要分配内存来存储变量的当前值,代码如下:
(1)建立一个计算图,从这个计算图中获取某些数据的信息。
(2)确定要在计算图中的哪些节点放置汇总操作以记录信息,如:
使用tf.summary.scalar记录标量;
使用tf.summary.histogram记录数据的直方图;
使用tf.summary.distribution记录数据的分布;
使用tf.summary.image记录图像数据。
(3)操作并不会真的执行计算,除非需要它们去运行,或者它们被其他需要运行的操作所依赖。而上一步创建的这些汇总操作其实并不被其他节点依赖,因此,需要特地去运行所有的汇总节点。但是,一个程序可能有很多这样的汇总节点,手动一个一个去启动是极其烦琐的,因此可以使用tf.summary.merge_all将所有汇总节点合并成一个节点,只要运行这个节点,就能产生所有之前设置的汇总数据。
(4)使用tf.summary.FileWriter将运行后输出的数据都保存到本地磁盘中。
(5)运行整个程序,并在命令行输入运行TensorBoard 的指令,之后打开Web 端可查看可视化的结果。