明天要去实习了,心里有些激动,有些紧张,还有些舍不得,舍不得学校的样子,和某个人。
进入正题。
tensorflow是谷歌开源的一款深度学习框架,我用的是python,这个框架是目前最火的框架之一,很有学习的必要。
首先tensorflow,tensor + flow,tensor –> 张量,flow –>流动, 也就是张量在图里流动。这里讲两点,张量就是,0维的叫标量(数字),1维的叫向量,2维的叫矩阵,那3+维只能叫张量了;而在图里流动,这里的图(graph)是tensorflow的重要思想之一,tensorflow把运算结构画成graph,其中有节点op,有边,边代表张量的流动,节点代表运算。
在tensorflow代码中,分为两大块,第一块用来画图,即把所有的运算画在一张图上,并没有实际运算;第二块用来运算,Session().这样做看似很麻烦,其实有个好处,我们看到了图之后,可以有选择性的运算某些节点,而一些没必要的节点可以不运算,节约了大量的时间。如下面的代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15x=2
y=3
add_op=tf.add(x,y)
mul_op=tf.mul(x,y)
useless=tf.mul(x,add_op)
pow_op=tf.pow(add_op,mul_op)
with tf.Session() as sess:
z=sess.run(pow_op)
可以看到如果只run(pow_op)
,那么useless
就不会被运算。原因是,当我们run
时,会从图中找该op所依赖的op,而pow_op
没有依赖useless
,所以就没有执行啦。
记得查看graph的时候,可不是像打开jpg一样哟。。要cd
到graph存放的目录下,Tensorboard --logdir='目录 '
才行。
待续。。。