TensorFlow学习笔记1

TensorFlow的解释及基本概念

Tensor就是张量,可以理解为多维数组,表示一种数据结构,Flow则表示一种计算模型,TensorFlow是一个通过计算图的形式来表达计算的编程系统。TensorFlow中的每一个计算都是计算图中的一个节点,而节点之间的边描述了计算之间的依赖关系。

下面是TensorFlow中有关计算图,张量,会话的基本概念。

计算图

在TensorFlow中,程序会自动维护一个默认的计算图,如果没有特殊指定,系统会自动将定义的计算加入默认的计算图中。
通过tf.get_default_graph()函数可以获取默认是计算图。如果有一个张量的引用a,可以通过a.graph来获取其计算图。
例如:

a = tf.constant([2,5],name="a")
print a.graph 
#输出<tensorflow.python.framework.ops.Graph object at 0x10542e8d0>
print tf.get_default_graph() 
#输出<tensorflow.python.framework.ops.Graph object at 0x10542e8d0>

除了使用默认的计算图,可以利用tf.Graph()函数来生成新的计算图,不同的计算图中的张量和计算都不能共享。
计算图可以通过device()函数来指定运行计算的设备。
例如:

g = tf.Graph()
with g.device(“/gpu:0”)
result = a + b

张量

一个张量有三个属性,比如a = tf.constant([3.0,4.0],name=”a”) ,
a 为一个张量,直接输出a, 结构为Tensor(“a:0”, shape=(2,), dtype=float32)
a有三个属性,name(名字)/ shape(纬度)/dtype(类型)。
第一个属性是name,通过node:src_output的形式给出,node为节点名称,src_output表示当前张量来自节点的第几个输出。
第二个属性是shape,shape=(2,)表示张量是一个一维数组,数组长度为2。
第三个属性是dtype,TensorFlow会对参与运算的所有张量进行类型检查,当发现类型不匹配时会报错。
张量有两个主要的作用:
(1)对中间结果的引用,比如a = tf.constant([3.0,4.0],name=”a”) ,a就是对constant函数的结果的引用.
(2)用于获取计算结果。例如tf.Session().run(result)

运行会话(session)

TensorFlow运行会话的方式有两种,一种是直接调用回话生成函数和关闭函数。
例如:

sess = tf.Session() #创建回话
sess.run() #得到运算结果
sess.close() #关闭回话,释放资源

为了避免run()函数异常退出,造成资源没有释放而泄露,利用python的上下文管理器在退出时来自动释放资源。
如:

with tf.Session() as sess:
    sess.run()

通常情况下,TensorFlow会自动生成一个默认的计算图,如果没有特殊的指定,计算会自动加入这个计算图中,但是TensorFlow不会自动生成一个默认的会话,需要手动指定。当默认会话被指定之后,可以通过调用tf.Tensor.eval()函数来计算张量的取值。
例如:

sess = tf.Session()
with  sess.as_default():
    print(result.eval())
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值