欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

tensorflow入门

程序员文章站 2022-03-28 20:15:37
tensorflow入门 tensorflow是由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护的一个深度学习框架。 入门案例 以下是一个加法运算的示例,我们通过tensorflow构建一个tensorflow graph ,然后通过session 会话去运行该graph,我们通过a ......

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())

运行结果

tensorflow入门

我们通过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)

 

输出结果如下:

tensorflow入门

我们看到的结果就是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())

 

运行结果如下图所示:

tensorflow入门

通过运行结果,发现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就有上下文环境。