• Tensorflow计算模型——计算图


    1.计算图的概念:

      计算图:输入和计算函数都以节点的形式出现,而节点的输出项之间的关系以有向线段表示所构成的计算图形。

    如:向量a, b 相加:

    2. 计算图的使用:

    注意:Tensorflow程序一般分两步:定义计算图中所有计算;执行计算

    在tensorflow代码执行的时候,tensorflow会自定定义一个默认的计算图,可以通过tf.get_default_graph函数来获取当前默认的计算图

    import tensorflow as tf
    
    '''tensorflow程序第一步:定义计算图中所有计算'''
    a=tf.constant([1.0, 2.0], name="a")
    b=tf.constant([2.0, 3.0], name="b")
    result=a+b
    
    '''判断a节点是不是在默认节点中'''
    print(a.graph is tf.get_default_graph())
    print(b.graph is tf.get_default_graph())
    
    输出:
    True
    True

    当然,可以使用tf.Graph函数来生成新的计算图。

    注意:计算图其实是一种数据结构,则上面的数据和运算不会相互共享。

    import tensorflow as tf
    
    '''tensorflow第一步:定义所有计算'''
    
    g1=tf.Graph()
    with g1.as_default():
        '''在计算图g1中定义变量“v",并初始化为0'''
        v=tf.get_variable( "v", shape=[1,2],initializer=tf.zeros_initializer )
    
    g2=tf.Graph()
    with g2.as_default():
        '''在计算图g2中定义变量“v",初始化为1'''
        v=tf.get_variable( "v", shape=[2,3],initializer=tf.ones_initializer )
    
    '''tensorflow第二步:运行计算'''
    
    with tf.Session(graph=g1) as sess:
        tf.initialize_all_variables().run()         #初始化所有变量
        with tf.variable_scope("", reuse=True):
            print(sess.run(tf.get_variable("v")))       #获取变量v
    
    with tf.Session(graph=g2) as sess:
        tf.initialize_all_variables().run()
        with tf.variable_scope("", reuse=True):
            print(sess.run(tf.get_variable("v")))
    
    输出:
    [[0. 0.]]
    [[1. 1. 1.]
     [1. 1. 1.]]

    计算图由节点和关系构成,那么计算图的资源如何给用户比较方便的调用呢?

    在一个计算图中可以使用集合(collection)来管理整个资源。这里的资源具体指的是张量,变量,或者队列等。

    tf.add_to_collection函数将资源加入一个或者多个collection

    tf.get_collection函数,获取指定collection中的所有资源

        几个常用的集合

  • 相关阅读:
    java.net.SocketException: Unconnected sockets not implemented 解
    ios 瀑布流
    IOS --- 日期时间格式 更改
    平衡二叉树(常问问题)
    Oracle 学习笔记 17 -- 异常处理(PL/SQL)
    【Java先进】Lock、通过使用线程池
    兼容 谷歌、火狐、360系列浏览器桌面通知()有用
    iOS截取特定的字符串(正则匹配)
    改造世界、知行合一、实践论、学以致用
    如何理解“哲学家们只是用不同的方式解释世界,而问题在于改变世界”?
  • 原文地址:https://www.cnblogs.com/ALINGMAOMAO/p/11711054.html
Copyright © 2020-2023  润新知