tensorflow入门
tensorflow入门
tensorflow是由谷歌人工智能团队谷歌大脑(google brain)开发和维护的一个深度学习框架。
入门案例
以下是一个加法运算的示例,我们通过tensorflow构建一个tensorflow graph ,然后通过session
会话去运行该graph,我们通过api sess.run()来指定图的输出,除了最终的结果,参与整个图运
算的数据我们都可以输出,如果我们需要得到的话。
1 import tensorflow as tf 2 3 """ 4 实现一个加法运算,必须遵循以下的格式 5 """ 6 7 #创建一个tensor张量 8 a = tf.constant(5.0) 9 b = tf.constant(6.0) 10 11 #创建一个op(操作) 12 sum=tf.add(a, b) 13 14 #通过session执行graph 15 with tf.session() as sess: 16 print(sess.run(sum)) 17 print(sess.run([a, sum])) 18 print(sum.eval())
运行结果
我们通过sess.run(sum)来输出数据sum,如果输出的数据是多个,我们需要使用元组。
我们也可以使用sum.eval()来输出数据sum。
核心概念
tensorflow=tensor + flow ,也就是有向数据流 ,我们使用tensorflow就是构建一个数据流图, 然后执行改图。
tensorflow数据流图
- 张量: tensor, 数据就是张量
- 节点: operation(op),所有的运算操作都是一个op
- 图: graph,整个程序的结构就是一个graph,定义了整个程序的框架
- 会话: session , 用来运行图
tensor(张量)
tensorflow graph中的数据都是张量,示例如下:
1 import tensorflow as tf 2 3 4 a = tf.constant(5.0) 5 b = tf.constant(6.0) 6 sum=tf.add(a, b) 7 print(a) 8 print(sum)
输出结果如下:
我们看到的结果就是tensor对象
op(操作)
只要使用tensorflow的api定义的函数都是op, 如constant(), add()。
graph(图)
tenorflow有一个默认图, 如果我们不指定图的话, 默认就是在默认图上运行的。
- 默认图
如果我们不指定图的话,我们使用的是tensorflow的默认图,他会自动调用 graph=
tf.get_default_graph(), 相当于给程序分配了一段内存, 我们所有的tensor, op
都在这张图上。
1 import tensorflow as tf 2 3 """ 4 实现一个加法运算,必须遵循以下的格式 5 """ 6 7 #创建两个tensor张量 8 a = tf.constant(5.0) 9 b = tf.constant(6.0) 10 #创建一个op(操作) 11 sum=tf.add(a, b) 12 13 print(a.graph) 14 print(b.graph) 15 print(sum.graph) 16 17 #默认图 18 graph = tf.get_default_graph() 19 print(graph) 20 21 #通过session执行graph 22 with tf.session() as sess: 23 print(sess.run(sum)) 24 print(sess.run([a, sum])) 25 print(sum.eval())
运行结果如下图所示:
通过运行结果,发现tensor, op , 和session 都运行在一张图上, 也就是系统默认
的这张图 。 with tf.session() as sess: 相当于 with.tf.session(graph) as sess: 。
- 自定义图
默认使用的是tensorflow默认图,我们也是可以自定义图,一下是一个自定义图的完整示例:
1 import tensorflow as tf 2 3 #创建一个图 4 g = tf.graph() 5 6 #使用自定义的图 7 8 with g.as_default(): 9 pass
session(会话)
session是一个会话, tensorflow的graph必须在session中执行
- 会话的作用
1.运行图的资源
2.分配资源运算,决定graph在什么设备上运行
3.掌握资源(变量的资源,队列,线程)
会话对象, 我们可以执行创建,运行和关闭等操作
1 s = tf.session() 2 s.run() 3 s.close()
上下文环境
会话就是graph的上下文环境,只要有session就有上下文环境。