tensorflow 计算图和会话

标签: Tensorflow  tensorflow

计算图

计算图是Tensorflow一个基本概念,Tensorflow中的所有计算都会被转化为计算图上的节点。Tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。
在这里插入图片描述
TENSORFLOW入门教程三—计算图

常用方式

获取tensor的图以及当前默认图

x = tf.constant([[1,2],[3,4]])
print(x.graph is tf.get_default_graph())

新建图有多种方式

# 新建图并作为默认图
tf.reset_default_graph()
# 新建一个图
tf.Graph()

测试一下

tf.get_default_graph()
# <tensorflow.python.framework.ops.Graph at 0x17c95f03b38>

g1 = tf.Graph()
with g1.as_default():
    y = tf.Variable(0,name='y_1')

y.graph
# <tensorflow.python.framework.ops.Graph at 0x17c96fc09e8>

tensorflow的计算图不仅可以隔绝张量和计算,它还提供了管理和计算的机,计算图可以通过tf.Graph().device()函数指定运行计算的设备。下面程序将加法泡在GPU上

import tensorflow as tf
g1 = tf.Graph()
with g1.as_default():
    a = tf.constant([1,2])
    b = tf.constant([2,3])
    with g1.device('/gpu:0'):
        result = a + b
with tf.Session(graph=g1) as sess:
    print(sess.run(result))

在计算图中,可以通过集合(collection)来管理不同类别的资源,通过tf.add_to_collection()函数可以将资源加入一个或多个集合中,然后通过tf.get_collection()获取一个集合里面的所有资源,这里的资源可以是张量,变量或者运行Tensorflow程序所需要的队列资源。Tensorflow也自动管理一些最常用的集合。
tf.GraphKeys.VARIABLES 所有变量
tf.GraphKeys.TRAINABLE_VARIABLES 可学习的变量
tf.GraphKeys.SUMMARIES 日志生成相关的张量
tf.GraphKeys.QUEUE_RUNNERS 日志生成相关的张量
tf.GraphKeys.MOVING_AVERAGE_VARIABLES 所有计算了滑动平均值的变量

未完待续

版权声明:本文为weixin_40548136原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40548136/article/details/108285335

智能推荐

《TensorFlow-实战Google深度学习框架》学习笔记 计算图、张量、会话

3.1 TensorFlow计算模型——计算图           Tensor:是张量,可以简单理解为多维数组,相当于表明了数据结构           Flow:是流,表达张量之间通过计算相互转化的过程...

TensorFlow 高级之四(TensorFlow计算图)

TensorFlow计算图 一、 创建Session 以及变量初始化 二、执行优化的帮助函数 三、 执行优化的帮助函数 四、 显示性能的帮助函数 五、 执行优化后性能 5.1 执行一轮优化后的性能 5.2 100轮优化后的性能 5.3 1000轮优化后的性能 5.4 10000轮优化后的性能...

TensorFlow北大公开课学习笔记-3.1张量计算图会话

注:本系列文章主要是复现北京大学TensorFlow笔记中的代码,方便以后使用,并没有详细讲解流程,因为我并不是专门做教程的。何况北大的教程讲的已经很好了,有需要了解详细过程的可以去看北大的教程哈。 一、基本概念 √基于 Tensorflow 的 NN: 用张量表示数据,用计算图搭建神经网络,用会话执 行计算图,优化线上的权重(参数),得到模型。 √张量:张量就是多维数组(...

tensorflow(四)----会话

tensorflow----会话 一、会话 1.会话的定义和典型流程 会话提供了估计张量(打印张量)和执行操作的运行环境,他是发放计算认为的客户端,所有计算任务都由它连接的执行引擎完成。一个会话的典型使用流程分为以下三步: target:会话连接的执行引擎。 graph:会话加载的数据流图。当有多个数据流图时,需要指定一个数据流图加载。 config:会话启动时的配置项。 注意: 用with......

冒泡排序,及改进方式,性能优化400%>>>附图解加源码

首先源码附上,源码中带有注释,看不懂没关系,源码后面附带图解,最后附上代码效率提升图 源码如下: 方案一:其实实现很简单,两层循环,每次内层迭代出最大的一个值,将其放入数组最后一个位置,外层循环的末端便往前移一位。其原理如下图 方案一代码块: 方案二:优化改进 仔细观察上面的图,我们不难发现当迭代到图下这样的情况时,其实已经全排序好了,但是我们还是需要对它进行1,2,3,4,5,6的迭代,这些情况...

猜你喜欢

css3常用选择器

先介绍一下基本选择器,如下几种 *:通配符。选择页面的所有元素 E:元素选择器。对页面的一些元素进行选择,如p,div,li等 .class:类选择器 #id:id选择器。一个Id在一个页面中只能选择,这是和类选择器的区别 E F:后代选择器。如ul li。选中ul下的li E>F:子元素选择器。如下,可以用 h1 > strong {color:red;}使h1的子元素strong变...

python is not set from command line or npm configuration

问题 猜测原因  python版本冲突 解决方案  去官网找到最新版本python 点击下载,注意记住你下载的目录,下载好以后,打开这个目录下的文件夹,Python310, 整个文件夹复制一下 在项目里运行npm config list --json 找到python的路径   我的是 C:\\Python27\\python.exe 说明项目里用的还是py...

Java8 Stream流操作

前言 我们常常需要将一个容器转化成另一个容器,或是对这个容器中的数据进行批量处理,这时使用Stream流可以大大减少我们的工作量。 1 Stream概述 Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(Collection)提供了极大的便利。 那么什么是Stream? Stream将要处理的元素集合看作一种流,在流的过程中,借助St...

带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑

在Windows下进行C++的开发,不可避免的要与Windows的底层库进行交互,然而VS下的一项设置MT、MTd、MD和MDd却经常让人搞迷糊,相信不少人都被他坑过,特别是你工程使用了很多第三库的时候,及容易出现各种链接问题。看一下下面这个错误提示:  LIBCMT.lib(_file.obj) : error LNK2005: ___initstdio already defined...

git 设置 gitignore 忽略 __pycache__

清除git缓存中的pycache 直接删掉硬盘上的文件 如果我想保留硬盘上的这个文件,而只删除版本管理中的文件,就需要加入--cached参数。 切换分支出现问题 尽管我已经删除了__pycache__,硬盘也没有了,但是切换分支的时候依然是会提示本地重写的情况。 提示:需要我在切换分支之前,提交一次更新。 提交了更新之后,再来尝试切换分支,如下: 成功了,说明当做了任何变更之后,切换分支前需要执...