导学:介绍三部分内容
-
计算模型
-
数据模型
-
运行模型
1.计算模型
计算图:是TensorFlow中最基本的一个概念,所有计算都会被转化为计算图上的节点。
1.1计算图的概念
Tensorflow中的每一个计算,都是计算图中的一个节点。而节点之间的边描述了计算之间的依赖关系。
1.2计算图的使用
在TensorFlow程序中,系统会自动维护一个默认的计算图,通过tf.get_default_graph()函数可以获取当前默认的计算图。
除了使用默认的计算图,支持通过tf.Graph()函数来生成新的计算图。不同计算图上的张量和运算都不会共享。
eg: g1 = tf.Graph()
with g1.as_default():
#在计算图g1中定义变量“v”,并设置初始值为0.
v = tf.get_variable("v",shape = [1],initializer = tf.zeros_initializer)
#在计算图g1中读取变量v的值
with tf.Session(graph = g1) as sess:
tf.global_variables_initializer().run()
with tf.variable_scope("",reuse = True):
#在计算图g1中,变量v的取值应该是0,所以下面这行会输出[0.]
print(sess.run(tf.get_variable("v")))
2.数据模型--张量
2.1张量的概念
在TensorFlow中,所有数据都是通过张量的形式来表示。可以简单理解为多维数组。
在张量中,并没有保存数字,保存的是如何得到这些数字的过程。
eg: result = tf.add(a,b,name= “add”)
print result
'''
输出:Tensor("add:0",shape=(2,),dtype=float32)
#"add:0"表示result这个张量是计算节点add输出的第一个结果,标号从0开始。shape=(2,)说明张量result是一个一维数组,数组长度为2
'''
3.运行模型--会话
前面介绍的是TensorFlow如何组织数据和运算的。本节介绍如何使用会话来执行定义好的运算。
eg:
#创建一个会话,并通过python中的上下文管理器来管理这个会话。
with tf.Session() as sess:
#使用创建好的会话来计算结果
sess.run(.....)
#当上下文退出时会话关闭和资源释放也自动关闭了
通过Python上下文管理器的机制,只要将所有的计算放在“with”内部就可以,当上下文管理器退出时自动释放资源。