第2话 TensorFlow 数据流图———TensorBoard的使用

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可以)

得到下图的界面

你可能感兴趣的:(python,tensorflow,人工智能,深度学习)