1.1 什么是数据流图
TensorFlow使用符号计算图,这与Theano相似,不过与Theano相比,TensorFlow 更简洁。TensorFlow 的名字本身描述了它自身的执行原理: Tensor (张量)意味着N维数组,Flow (流)意味着基于数据流图的计算。数据流图中的图就是我们所说的有向图,在图这种数据结构中包含两种基本元素:节点和边。这两种元素在数据流图中有自己各自的作用,其中节点代表对数据所做的运算或某种算子(Operation)。另外,任何一种运算都有输人/输出,因此它也可以表示数据输人的起点或输出的终点。而边表示节点与节点之间的输人1输出关系,一种特殊类型的数据沿着这些边传递。这种特殊类型的数据在TensorFlow中被称为Tensor,即张量,所谓的张量通俗点说就是多维数组。
当我们向这种图中输人张量后,节点代表的操作就会被分配到计算设备完成计算,下面就是一个简单的数据流图。
1.2 TensorFlow实现数据流图
上面的图写成代码如下所示:
import tensorflow as tf
a = tf.constant(2)
b = tf.constant(4)
c = tf.multiply(a, b)
d = tf.add(a, b)
e = tf.add(c, d)
with tf.Session() as sess:
print(sess.run(e))
'''
输出>>>
14
'''
1.3 可视化数据流图
想要看见,需要使用一个工具——TensorBoard,这个工具已经在你安装tensorflow的时候带上了,不用再安装了。
是什么?干什么?怎么用?写代码!
import tensorflow as tf
a = tf.constant(2, name='input_a')
b = tf.constant(4, name='input_b')
c = tf.multiply(a, b, name='mul_c')
d = tf.add(a, b, name='add_d')
e = tf.add(c, d, name='add_e')
with tf.Session() as sess:
print(sess.run(e))
writer = tf.summary.FileWriter('board', sess.graph) # tf.summary这个模块就是用来可视化的,不要为什么
writer.close()
'''
输出>>>
14
'''
运行代码,会在制定的目录board生成log文件(文件名也可以改成其他的,随你)
可以看到,再board目录下生成了一个log文件,怎么用呢,双击可不行,来跟我左手右手一个慢动作
启动你的cmd (win键+r键),进入对应的目录,输入 tensorboard --logdir="board"
(这个board你可以改成其他名字,对应代码里的也要改。)
][4]
访问 http://localhost:6006 (不要访问cmd上的http://LAPTOP-BBMBSKKI:6006/,可能打不开在一些浏览器,反正我的chrome里打不开,uc可以)
得到下图的界面
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。