Tensorflow之计算图的使用

作者: HeoLis | 来源:发表于2018-01-28 17:55 被阅读3次

    Tensorflow是一个通过计算图的形式来表述计算的编程系统。Tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系吗。可通过Tensorboard可视化这一关系。

    计算图

    一下代码演示了如何在不同计算图上定义和使用变量,以及指定运行计算的设备

    import tensorflow as tf
    
    g1 = tf.Graph()
    with g1.as_default():
        # 在计算图g1中定义变量“v”,并设置初始值0.
        v = tf.get_variable("v",initializer=tf.zeros([1]))
    
    g2 = tf.Graph()
    with g2.as_default():
        # 在计算图g2中定义变量“v”,并设置初始值为1。
        v = tf.get_variable("v",initializer=tf.ones([1]))
    
    # 在计算图g1中读取变量“v”的取值。
    with tf.Session(graph=g1) as sess:
        init = tf.global_variables_initializer()
        sess.run(init)
        with tf.variable_scope("",reuse=True):
            # 在计算图g1中,变量“v”的取值应该为0,所以下面这行会输出[0.]。
            print(sess.run(tf.get_variable("v")))
    
    # 在计算图g2中读取变量“v”的取值
    with tf.Session(graph=g2) as sess:
        init = tf.global_variables_initializer()
        sess.run(init)
        with tf.variable_scope("",reuse=True):
            # 在计算图g2中,变量“v”的取值应该为1,所以下面这行会输出[1.]。
            print(sess.run(tf.get_variable("v")))
    
    
    ### 使用 tf.Graph.device 函数指定运行计算
    g = tf.Graph()
    with tf.Session(graph=g) as sess:
        a = tf.constant([1.0,2.0],name="a")
        b = tf.constant([2.0,3.0],name="b")
        with g.device('/cpu:0'):
            result = a + b
            init = tf.global_variables_initializer()
            sess.run(init)
            print(sess.run(result))
            print(result)
    

    运行后依次会输出:

    [ 0.]
    [ 1.]
    [ 3.  5.]
    Tensor("add:0", shape=(2,), dtype=float32, device=/device:CPU:0)
    

    如果没有特殊指定,运算会自动加载到默认的计算图中

    相关文章

      网友评论

        本文标题:Tensorflow之计算图的使用

        本文链接:https://www.haomeiwen.com/subject/ipjzaxtx.html