TensorFlow入门
1.计算图的概念
tensor:张量,可理解为多维数组,第n阶张量可以理解为一个n维数组;其在TensorFlow中的实现并不直接采用数组的形式,只是对TensorFlow中运算结果的引用。张量中并未真正保存数字,保存的是如何得到这些数字的过程。
a = tf.constant([1,2],name='a')
b = tf.constant([2.0,3.0],name='b',dtype=float32)
不指定数据类型时,TensorFlow给出默认的数据类型。比如:不带小数点的数会被默认为int32,带小数点的数会被默认为float32.
张量的使用:对中间计算结果的引用(增加代码的可读性);当计算图构造完成后,张量可以用来获得计算结果。如:可通过sess.run(result)得到真正的计算结果。
flow:流,表示张量之间通过计算下相互转化的过程。
TensorFlow中,每个计算对应于计算图中的一个节点,节点之间的边表示计算间的依赖关系。
2.计算图的使用
TensorFlow的程序分为两个阶段:定义计算和执行计算。
(1)TensorFlow默认的计算图由tf.get_default_graph获取当前默认的计算图。
注:graph()可以查看当前张量所属计算图
(2)tf.Graph()生成新的计算图。不同计算图上的张量和计算不会共享。
3 TensorFlow的运行模型—会话
利用TensorFlow中的会话(session)执行定义好的计算。
以下为会话模型的两种使用方法
(1)sess = tf.Session()
sess.run(...)
sess.close()
需要明确调用Session.close()关闭会话并且释放资源。但是当程序因为异常退出时,关闭会话的函数可能不会被执行而导致资源泄漏。
(2)通过Python中上下文管理器管理该会话。
with tf.Session(graph=g1) as sess:
sess.run()
当上下文退出时会话关闭和资源释放也自动完成。
TensorFlow不会生成默认的会话,需手动指定。
(1) sess = tf.Session()
with sess.as_default():
print result.eval()
(2) sess = tf.Session()
print sess.run(result)
print result.eval(session=sess)
(1)和(2)代码实现功能相同。
本文介绍了TensorFlow的入门知识,重点讲解了计算图的概念,包括张量作为多维数组的表示以及它在代码中的作用。文章还详细阐述了计算图的使用,分为定义和执行两个阶段,并解释了如何获取和创建不同的计算图。最后,讨论了TensorFlow的运行模型——会话,提供了两种执行计算和管理资源的方法:显式关闭会话和使用上下文管理器。
6973

被折叠的 条评论
为什么被折叠?



