转载自:http://blog.csdn.net/john_xyz/article/details/69053626

  Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做是一种有向图,Tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。

计算图的使用

  在tensorflow程序中,系统会维护一个默认的计算图,通过tf.get_default_graph()函数可以获取当前默认的计算图,为了向默认的计算图中添加一个操作,我们只需要简单的调用一个函数:

c = tf.constant(3.0)
assert c.graph == tf.get_default_graph()

  除了使用默认的计算图,Tensorflow支持通过tf.Graph()函数来生成新的计算图,不同计算图的张量和运算都不会共享,使用tf.Graph.as_default()覆盖当前的默认图。

g = tf.Graph()
with g.as_default():
c = tf.constant(3.0)
assert c.graph is g
#coding:utf-8
import tensorflow as tf g1 = tf.Graph()
with g1.as_default():
# 在图g1中定义初始变量c, 并设置初始值为0
v = tf.get_variable("v", shape=[1], initializer = tf.zeros_initializer(dtype=tf.float32)) g2 = tf.Graph()
with g2.as_default():
# 在图g1中定义初始变量c, 并设置初始值为1
v = tf.get_variable("v", shape=[1], initializer = tf.ones_initializer(dtype=tf.float32)) with tf.Session(graph=g1) as sess:
sess.run(tf.global_variables_initializer())
with tf.variable_scope('', reuse=True):
# 输出值为0
print sess.run(tf.get_variable("v")) with tf.Session(graph=g2) as sess:
sess.run(tf.global_variables_initializer())
with tf.variable_scope('', reuse=True):
# 输出值为1
print sess.run(tf.get_variable('v'))

  上面的代码产生了两个计算图,当运行不同的计算图时,变量v的值是不一样的。同时,计算图Graph通过tf.Graph.device()函数来制定运行计算图的设备, 下图定义的程序可以将加法计算跑在GPU上

g = tf.Graph()
# 指定计算运行的设备
with g.device('/gpu:0'):
result = a + b

  在一个计算图中,可以通过集合(collection)来管理不同类别的资源,一个计算图Graph实例支持任意数量的 name定义的collection, 当构建一个计算图时,collections可以存储一组相关的对象。

  例如:tf.Variables使用一个collection (named tf.GraphKeys.GLOBAL_VARIABLES)存储所有的变量,当构建计算图的时候。可以通过tf.add_to_collection()函数将资源加入一个collection中,然后通过tf.get_collection获取一个集合里面的所有资源。

tensorflow中自动管理了一些常用的集合,如下表:

集合名称

集合内容 

使用场景

tf.GraphKeys.VARIABLES

所有变量

持久化tensorflow模型

tf.GraphKeys.TRAINABLE_VARIABLES

可学习的变量(一般指神经网络中的参数)

模型训练、生成模型可视化内容

tf.GraphKeys.SUMMARIES

日志生成相关的张量

tensorflow计算可视化

tf.GraphKeys.QUEUE_RUNNERS

处理输入的QueueRunner

输入处理

tf.GraphKeys.MOVING_AVERAGE_VARIABLES

所有计算了滑动平均值的变量

计算变量的滑动平均值

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

  1. TensorFlow计算模型—计算图

    TensorFlow是一个通过计算图的形式来表述计算的编程系统.其中的Tnesor,代表它的数据结构,而Flow代表它的计算模型.TensorFlow中的每一个计算都是计算图上的一个节点,而节点之间的 ...

  2. TensorFlow 计算模型 -- 计算图

    TensorFlow是一个通过计算图的形式表述计算机的编程系统 TensorFlow程序一般分为两个阶段,第一个阶段需要定义计算图中所有的计算(变量) 第二个阶段为执行计算 如以下代码 import ...

  3. Tensorboard教程:Tensorflow命名空间与计算图可视化

    Tensorflow命名空间与计算图可视化 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 强烈推荐Tensorflow实战Google深度学习框架 实验平台: Tensorflow ...

  4. TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人

    简介 TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人. 文章包括一下几个部分: 1.为什么要尝试做这个项目? 2.为 ...

  5. Python之TensorFlow的模型训练保存与加载-3

    一.TensorFlow的模型保存和加载,使我们在训练和使用时的一种常用方式.我们把训练好的模型通过二次加载训练,或者独立加载模型训练.这基本上都是比较常用的方式. 二.模型的保存与加载类型有2种 1 ...

  6. Tensorflow 保存模型 & 在java中调用

    本节涉及: 保存TensorFlow 的模型供其他语言使用 java中调用模型并进行预测计算 一.保存TensorFlow 的模型供其他语言使用 如果用户选择“y” ,则执行下面的步骤: 判断程序执行 ...

  7. [tensorflow] 线性回归模型实现

    在这一篇博客中大概讲一下用tensorflow如何实现一个简单的线性回归模型,其中就可能涉及到一些tensorflow的基本概念和操作,然后因为我只是入门了点tensorflow,所以我只能对部分代码 ...

  8. TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人。

    简介 TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人. 文章包括一下几个部分: 1.为什么要尝试做这个项目? 2.为 ...

  9. 性能测试学习之二 ——性能测试模型(PV计算模型)

    PV计算模型 现有的PV计算公式是: 每台服务器每秒平均PV量 =( (总PV*80%)/(24*60*60*40%))/服务器数量 =2*(总PV)/* (24*60*60) /服务器数量 通过定积 ...

随机推荐

  1. 简单模拟struts2及struts2的处理流程介绍

    用了几天模拟struts2,最后结果还是很成功的,也基本没有什么遇上比较难解决的问题,万事开头难,在最开始的时候无从下手,看着下面这张struts2工作流程图配合着网上的博客看了一天终于有了眉目. 看 ...

  2. call of overloaded 'xxx' is ambiguous

    这里定义了一个模版函数,功能同STL里的copy函数: #include <vector> #include <list> #include <iostream> ...

  3. X509证书认证流程介绍

    X509证书介绍X.509 是由国际电信联盟(ITU-T)制定的数字证书标准,相信这是人尽皆知的了,目前X.509证书据我所知有三个版本,.net中使用的是x.509-2,X.509-2 版引入了主体 ...

  4. Mycat 注解说明

    我们知道MySQL 数据库有自己的SQL注解(hint),比如 use index.force index.ignore index 等都是会经常用到的,Mycat 作为一个数据库中间件,最重要的是 ...

  5. 微信小程序学习笔记(阶段二)

    二阶段学习过程: (一)看官方文档的框架.组件.API:https://mp.weixin.qq.com/debug/wxadoc/dev/ (二)看极客学院第3.4章视频:http://www.ph ...

  6. Spark核心技术原理透视一(Spark运行原理)

    在大数据领域,只有深挖数据科学领域,走在学术前沿,才能在底层算法和模型方面走在前面,从而占据领先地位. Spark的这种学术基因,使得它从一开始就在大数据领域建立了一定优势.无论是性能,还是方案的统一 ...

  7. Spring Boot入门教程1、使用Spring Boot构建第一个Web应用程序

    一.前言 什么是Spring Boot?Spring Boot就是一个让你使用Spring构建应用时减少配置的一个框架.约定优于配置,一定程度上提高了开发效率.https://zhuanlan.zhi ...

  8. 初始CSS3

    初始CSS31.1.什么是CSSCSS全程为层叠样式表(Cascading Style Sheet),通常又称为风格样式表(Style Sheet)它是用来进行网页风格设计的.1.CSS在网页中的应用 ...

  9. 基于bootstrap的表格数据展示

    一.导入bootstrap文件 二.前端html代码 对应的是前台条件查询和js数据获取 js数据获取部分在第四段 三.后台数据 total为集合总数  int类型 rows为前台需要展示的数据集合 ...

  10. Flask 学习 十四 测试

    获取代码覆盖报告 安装代码覆盖工具 pip install coverage manage.py 覆盖检测 COV = None if os.environ.get('FLASK_COVERAGE') ...