本系列推送主要参考: Stanford University CS20SI: Tensorflow for Deep Learning Research.
TensorFlow哲学 separates definition of computations from their execution 对定义计算,计算的执行,做了分离。
01
—
Tensor是什么?
Tensor是一个 n 维数组:
02
—
数据流图
以上就是数据流图。
下面从最简单的图开始:
import tensorflow as tf a = tf.add(3, 5)
通过TensorBoard进行可视化:
为什么是 x, y ?
TF 自动地命名节点,当我们没有显示地指定节点名称时,
x = 3
y = 5
接下来,我们打印 a,看看发生什么:
print (a) Tensor("Add:0", shape=(), dtype=int32)
图graph只是定义了操作operations , 如何得到a的值?
03
—
执行环境:Session
创建一个Session,并在这个Session中执行上面的图,抓取到 a 的值。
创建sess,并在当前的sess中执行图:
with tf.Session() as sess: print(sess.run(a))
Session对象,封装了TF的执行环境。大家如果开发过多线程,分布式软件的话,对于Session的理解可能更容易些,Session尤其对于高并发环境,并行计算显得更重要。
记住
图graph只是定义了操作operations,但是操作operations只能在session里面执行,但是graph和session是独立创建的。
04
—
Tensorboard入门
以windows下的使用Tensorboard为例,如果在Linux系统下,请在个别地方做出修改。
首先,必须在终端启动tensorboard,如果采用anaconda安装地话,在目录Anaconda3\Scripts下有个启动项: tensorboard.exe,这就是tensorboard的服务端。在cmd窗口,cd 到这个目录。
然后,编写tensorboard,代码:
import tensorflow as tf with tf.name_scope('input1'): input1 = tf.constant(3.0,name='input1') with tf.name_scope('input2'): input2 = tf.constant(5.0,name='input2') output = tf.add(input1,input2,name='add') with tf.Session() as sess: output = sess.run(output) graph = tf.get_default_graph() #将日志文件写入到目录../log/下 writer = tf.summary.FileWriter('log',graph) writer.close()
这样在log文件夹下,增加了一个event文件,
再在终端,输入 tensorboard.exe --logdir = 刚在生成的log文件夹的绝对路径,回车,这样服务端就启动了,
接下来,启动客户端,即浏览器,输入localhost:6006,端口是6006,选中graphs,得到如下的可视化图:
本文分享自 程序员郭震zhenguo 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!