TensorFlow基础

TensorFlow基础

基础练习

我们来实现下图所示的计算流程:

basic-practice-model

导入TensorFlow库:

然后定义默认的Graph,并用Session进行运算,然后写入磁盘中:

定义的图如下所示:

basic-practice-tensor-board-graph

综合练习

下面通过一个综合练习来掌握前面我们学过的所有组件:

  • Tensor对象

  • Graph对象

  • Op操作符

  • Variable对象

  • 占位符

  • Session对象

  • 名称作用域

  • TensorBoard汇总数据

最终目的是,通过此练习能自如地搭建基本的TensorFlow数据流图,并在TensorBoard中对其进行研究。

本练习的模型为:

combined-practice-model

本练习的数据流图为:

combined-practice-dataflow

下面开始动手实践:

(1)首先导入TensorFlow库:

(2)接下来构造图,显示创建一个Graph对象加以使用,不使用默认的Graph对象:

上一段代码构建的数据流图如下两图所示:

数据流图总览:

combined-practice-tensor-board-graph

数据流图详细展示:

combined-practice-tensor-board-graph-expand

注:上两图都是在TensorBoard中打开的。接下来会详细讲TensorBoard。

(3)构建好数据流图以后,接下来运行该数据流图。

打开一个Session对象,并加载已经创建好的Graph对象,也可以打开tf.summary.FileWriter对象,方便利用其保存数据。

Session对象启动后,在做其他事之前,先对各Variable对象进行初始化:

为了运行该数据,需要创建一个辅助函数run_graph(),这样以后便无需反复输入相同的代码。

我们将输入向量传给该函数,该函数将运行数据流图,并将汇总数据保存下来:

下面来实际使用这个函数,可变换向量的长度来多次调用run_graph()函数:

上述调用可反复进行。

下图是tf.summary.scalar值的随运行次数的变化情况:

combined-practice-average-summarycombined-practice-output-summarycombined-practice-total-summary

注:上三图都是在TensorBoard中打开查看的。

数据填充完毕后,用下面的代码将汇总数据写入磁盘:

(4)tf.summary.FileWriter对象和Session对象已经使用完毕,我们将其关闭,以完成一些清理工作。

以上便是全部的TensorFlow代码了。

下面我们打开TensorBoard,看看上图所示的结果吧。

启动Terminal,cd到运行上述代码的目录(确保improved_graph目录在该路径下),并运行下列命令:

该命令会在6006端口启动一个TensorBoar服务器,并托管存储在improved_graph中的数据。在浏览器中观察得到的结果。这里就不放图了,因为前面几个图就是其结果。

好了,本练习至此就全部结束了。虽然有点长,但是还不至于理解不了。希望能够熟练掌握如何基于虚拟草图创建TensorFlow数据流图,以及如何利用TensorBoard做一些基础的数据汇总工作。

参考资料

  • 《面向机器智TensorFlow实践》

本文主要参考此书对应章节。

Last updated

Was this helpful?