TensorFlow计算模型——计算图

之前零零散散地学了TensorFlow两个月,参考的是才云科技编写的《TensorFlow实战Google深度学习框架》,但是由于不系统,没有熟练地掌握使用方法。为此,通过博客的形式强迫自己再次系统地学一遍TensorFlow。

1.计算图概念

TensorFlow名字可以拆分成Tensor和Flow,Tensor表示张量体现了它的数据结构,Flow表示流体现了它的计算模型。TensorFlow是一个通过计算图的形式来表达计算的编程系统。TensorFlow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。

2.计算图的使用

TensorFlow程序一般可以分为两个阶段。第一个阶段需要定义计算图中的所有计算,第二阶段为执行阶段。在TensorFlow程序中系统会自动维护一个默认的计算图,通过tf.get_default_graph函数来获取当前默认的计算图。

import tensorflow as tf
a=tf.constant([[1.0,2.0],[2.0,3.0]],name='a')
b=tf.constant([[1.0,2.0],[3.0,4.0]],name='b')
result=a+b
print(a.graph is tf.get_default_graph())

结果为True

当然,TensorFlow也支持tf.graph()来生成新的计算图,不同计算图上的张量和运算都不会共享。

import tensorflow as tf
g1=tf.Graph()
with g1.as_default():
    v=tf.get_variable('v',[1],initializer=tf.zeros_initializer())

g2=tf.Graph()
with g2.as_default():
    v=tf.get_variable('v',[1],initializer=tf.ones_initializer())

with tf.Session(graph=g1) as sess:
    tf.global_variables_initializer().run()
    with tf.variable_scope('',reuse=True):
        print(sess.run(tf.get_variable('v')))

with tf.Session(graph=g2) as sess:
    tf.global_variables_initializer().run()
    with tf.variable_scope('',reuse=True):
        print(sess.run(tf.get_variable('v')))

输出[0.],[1.],注意到前后用tf.get_variable定义了两次同名的变量v,由于是定义在不同计算图上的否则会报错。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值