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中的所有资源

    几个常用的集合

原文地址:https://www.cnblogs.com/ALINGMAOMAO/p/11711054.html

时间: 2024-11-26 06:36:31

Tensorflow计算模型——计算图的相关文章

TensorFlow计算模型—计算图

TensorFlow是一个通过计算图的形式来表述计算的编程系统.其中的Tnesor,代表它的数据结构,而Flow代表它的计算模型.TensorFlow中的每一个计算都是计算图上的一个节点,而节点之间的线描述了计算之间的依赖关系. 在TensorFlow程序中,系统会自动维护一个默认的计算图,通过tf.get_default_gragh函数可以获取当前默认的计算图. 除了默认的计算图,TensorFlow也支持通过tf.Graph函数来生成新的计算图.不同的计算图上的张量和运算不会共享.如下示例:

TensorFlow 计算模型 -- 计算图

TensorFlow是一个通过计算图的形式表述计算机的编程系统 TensorFlow程序一般分为两个阶段,第一个阶段需要定义计算图中所有的计算(变量) 第二个阶段为执行计算 如以下代码 import tensorflow as tf # 第一阶段定义所有的计算 a = tf.constant([1, 2], name='a') b = tf.constant([1, 2], name=b') result = a + b # 第二阶段,执行计算 # 创建一个会话 sess = tf.Sessio

Tensorflow命名空间与计算图可视化

Tensorflow命名空间与计算图可视化 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 参考文献Tensorflow实战Google深度学习框架 实验平台: Tensorflow1.4.0 python3.5.0 Tensorflow可视化得到的图并不仅是将Tensorflow计算图中的节点和边直接可视化,它会根据每个Tensorflow计算节点的命名空间来整理可视化得到效果图,使得神经网络的整体结构不会被过多的细节所淹没.除了显示Tensorflow计算图的结构,Tens

深度学习计算模型中“门函数(Gating Function)”的作用

/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 看深度学习文献,门函数基本上已经是你必然会遇到的一个概念了,最典型的就是LSTM,首先上来你就得过得去"遗忘门""输入门""输出门"这三个门.门函数本身是个独立概念,不过LSTM使用多个门函数来组合出一个带有状态记忆的计算模型而已.随着LSTM大行其道,各种计算模型开始在计算过程中引入门函数的概念,相信这些论文你也没少看,其实这也是一种研究模式,比如

NOSQL(六)集群并发计算模型Map-Reduce

<NoSQL精粹>读书笔记,转载请注明出处<jiq?钦's technical Blog> 面向聚合的数据库能够兴起,很大程度上是由于集群的增长.集群不仅改变了数据存储的规则,还改变了数据计算的方式. 集中式数据库通常两种方式处理计算逻辑:一种是在数据库服务器上执行数据计算.一种是在客户端计算机上执行数据计算.把数据库放到集群之后,采用的计算方式是将计算分布到多台计算机上,同时为了尝试减少网络传输的数据量,把节点所需的数据尽可能多地放到该节点上执行.这就是所谓的"Map-

matlab(5) : 求得θ值后用模型来预测 / 计算模型的精度

求得θ值后用模型来预测 / 计算模型的精度 %% ============== Part 4: Predict and Accuracies ==============% After learning the parameters, you'll like to use it to predict the outcomes% on unseen data. In this part, you will use the logistic regression model% to predict

matlab(8) Regularized logistic regression : 不同的λ(0,1,10,100)值对regularization的影响,对应不同的decision boundary\ 预测新的值和计算模型的精度predict.m

不同的λ(0,1,10,100)值对regularization的影响\ 预测新的值和计算模型的精度 %% ============= Part 2: Regularization and Accuracies =============% Optional Exercise:% In this part, you will get to try different values of lambda and % see how regularization affects the decisio

大数据图数据库之离线挖掘计算模型

/* 版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/            author: 张俊林 节选自<大数据日知录:架构与算法>十四章,书籍目录在此 对于离线挖掘类图计算而言,目前已经涌现出众多各方面表现优秀而各具特点的实际系统,典型的比如Pregel.Giraph.Hama.PowerGraph.GraphLab.GraphChi等.通过对这些系统的分析,我们可以归纳出离线挖掘类图计算中一些常见的计算模型. 本节将常见的计算模型分为两类,一类是图编程模型,另一类

Hadoop 学习笔记二 --- 计算模型MapReduce

       MapReduce 是一个计算模型,也是一个处理和生成超大数据集的算法模型的相关实现.用户首先创建一个Map函数处理一个基于Key/Value pair 的数据集合,输出中间的基于Key/Value pair的数据集合,然后再创建一个Reduce 函数用来合并所有的具有相同中间Key值的中间Value值.其最主要的两个部分就是Map过程和Reduce过程. 一. Map 处理过程 1. Mapper 类的处理原理        Mapper 类的最主要的功能就是将输入的Key/Va