TensorFlow计算模型-计算图

TensorFlow中的所有计算都会被转化为计算图上的节点,每一个节点都是一个运算。不同计算图上的张量(可以简单的被理解为多维数组)和运算都不会共享,以下代码示意了如何在不同计算图上定义和使用变量。

import tensorflow as tf

g1 = tf.Graph()
with g1.as_default():  #此时将g1设为默认图
    # 在计算图个g1中定义变量"v",并设置初始值为0
    v = tf.get_variable("v", initializer=tf.zeros_initializer()(shape=[1]))

g2 = tf.Graph()
with g2.as_default():   #此时将g2设为默认图
    # 在计算图个g2中定义变量"v",并设置初始值为1
    v = tf.get_variable("v", initializer=tf.ones_initializer()(shape=[1]))

#在计算图g1找那个读取变量"v"的取值
with tf.Session(graph=g1) as sess:
    tf.global_variables_initializer().run() #初始化
    with tf.variable_scope("", reuse=True):  #设置图g1中v为共享变量,共享变量域名为空,定义过v后reuse才能为True
        #在计算图g1中,变量"v"的取值应该为0,所以会输出[0.]
        print(sess.run(tf.get_variable("v")))   #返回v的值

#在计算图g2找那个读取变量"v"的取值
with tf.Session(graph=g2) as sess:
    tf.global_variables_initializer().run() #初始化
    with tf.variable_scope("", reuse=True):  #设置图g2中v为共享变量,共享变量域名为空,定义过v后reuse才能为True
        #在计算图g2中,变量"v"的取值应该为0,所以会输出[1.]
        print(sess.run(tf.get_variable("v")))   #返回v的值

>>[ 0.]
  [ 1.]

可以看出运行不同计算图时,变量v的值也是不一样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值