TensorFlow入门 学习总结

junliang 20190301

说明:以下所有代码使用版本TensorFlow1.4.0或1.12.0版本

import tensorflow as tf
print(tf.__version__)
1.12.0

3.TensorFlow入门

3.1TensorFlow计算模型–计算图

TensorFlow是一个通过计算图的形式来表述计算的编程系统,每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。

Tensor代表张量,可以简单理解为多维数组,Tensor表明了它的数据结构。
Flow则体现了它的计算模型,表达了张量之间通过计算相互转化的过程。

TensorFlow程序一般可以分为两个阶段,第一个阶段需要定义计算图中所有的计算,第二个阶段为执行计算。

a = tf.constant([1.0, 2.0], name='a')
b = tf.constant([2.0, 3.0], name='b')
result = a + b

系统维护一个默认的计算图,通过tf.get_default_graph函数可以获取当前默认的计算图。

# 通过a.graph可以查看张量所属的计算图。因为没有特意指定,所以这个计算图应该等于当前默认的计算图。
print(a.graph is tf.get_default_graph())
True

通过tf.Graph()可以生成新的计算图,不同计算图上的张量和运算都不会共享。

1.4.0版本代码

g1 = tf.Graph()
with g1.as_default():
    v = tf.get_variable("v", initializer=tf.zeros_initializer(shape=[1]))
    
g2 = tf.Graph()
with g2.as_default():
    v = tf.get_variable("v", initializer=tf.ones_initializer(shape=[1]))
    
# 在计算图g1中读取变量v的取值
with tf.Session(graph=g1) as sess:
    tf.global_variable_initilizer().run()
    with tf.variable_scope("", reuse=True):
        # 在计算图g1中,变量v的取值应该为0,所以下面这行会输出[0.]
        print('g1 v='.format(sess.run(tf.get_variable("v"))))
    
# 在计算图g1中读取变量v的取值
with tf.Session(graph=g2) as sess:
    tf.global_variable_initilizer().run()
    with tf.variable_scope("", reuse=True):
        # 在计算图g2中,变量v的取值应该为0,所以下面这行会输出[0.]
        print('g2 v='.format(sess.run(tf.get_variable("v"))))
        

1.12.0版本代码

g1 = tf.Graph()
with g1.as_default():
    v = tf.get_variable("v", initializer=tf.zeros_initializer(), shape=[1])
    
g2 = tf.Graph()
with g2.as_default():
    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的取值应该为0,所以下面这行会输出[0.]
        print(sess.run(tf.get_variable("v", [1])))
    
# 在计算图g1中读取变量v的取值
with tf.Session(graph=g2) as sess:
    tf.global_variables_initializer(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值