TensorFlow使用Graph的基本操作的实现


Posted in Python onApril 22, 2020

1.创建图

在tensorflow中,一个程序默认是建立一个图的,除了系统自动建立图以外,我们还可以手动建立图,并做一些其他的操作。

下面我们使用tf.Graph函数建立图,使用tf.get_default_graph函数来获取图,使用reset_default_graph对图进行重置。

import tensorflow as tf
import numpy as np


c = tf.constant(1.5)
g = tf.Graph()

with g.as_default():

  c1 = tf.constant(2.0)
  print(c1.graph)
  print(g)
  print(c.graph)

g2 = tf.get_default_graph()
print(g2)

tf.reset_default_graph()
g3 = tf.get_default_graph()
print(g3)

上述的代码运行结果如下所示:

TensorFlow使用Graph的基本操作的实现

根据上述的运行结果,c是在刚开始的默认图中建立的,所以打印的结果就是13376A1FE10,和g2获取的默认图的值是一样的,然后使用tf.Graph建立了一个新的图,并添加了变量c1,最后又对图进行了重置,替代了原来的默认图。

在使用reset_default_graph()函数的时候,要保证当前图中资源都已经全部进行了释放,否则将会报错。

2.获取张量

我们可以在图中通过名字得到其对应的元素,比如获取图中的变量和OP等元素。

import tensorflow as tf
import numpy as np

g = tf.Graph()

with g.as_default():
  c1 = tf.constant(2.5, name='c1_constant')
  c2 = tf.Variable(1.5, dtype=tf.float32, name='c2_constant')
  add = tf.multiply(c1, c2, name='op_add')

  c_1 = g.get_tensor_by_name(name='c1_constant:0')
  c_2 = g.get_tensor_by_name(name='c2_constant:0')
  c_3 = g.get_tensor_by_name(name='op_add:0')


  print(c_1)
  print(c_2)
  print(c_3)

TensorFlow使用Graph的基本操作的实现

在进行测试时,我们为元素添加了变量名,在设置变量名的时候,设置好的名字会自动添加后面的:0字符。一般我们可以将名字打印出来,在将打印好的名字进行回填。

3.获取节点操作

获取节点操作OP的方法和获取张量的方法非常类似,使用get_operation_by_name.下面是运行实例:

import tensorflow as tf
import numpy as np

a = tf.constant([[1.0, 2.0]])
b = tf.constant([[1.0], [3.0]])

tensor_1 = tf.matmul(a, b, name='matmul_1')

with tf.Session() as sess:
  sess.run(tf.global_variables_initializer())
  t1 = tf.get_default_graph().get_operation_by_name(name='matmul_1')
  t2 = tf.get_default_graph().get_tensor_by_name(name='matmul_1:0')
  print(t1)
  print('t1: ', sess.run(t1))
  print('t2: ', sess.run(t2))

在上述的代码中,定义了一个OP操作,命名为matmul_1,在运行时我们将op打印出来,在使用名字后面加上:0我们就能得到OP运算的结果的tensor,注意这两者的区别。

我们还可以通过get_opreations函数获取图中的所有信息。此外,我们还可以使用tf.Grapg.as_graph_element函数将传入的对象返回为张量或者op。该函数具有验证和转换功能。

到此这篇关于TensorFlow使用Graph的基本操作的实现的文章就介绍到这了,更多相关TensorFlow Graph操作内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
跟老齐学Python之再深点,更懂list
Sep 20 Python
python字符串过滤性能比较5种方法
Jun 22 Python
Python构建网页爬虫原理分析
Dec 19 Python
pyqt5简介及安装方法介绍
Jan 31 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
Django框架实现的简单分页功能示例
Dec 04 Python
Python类中的魔法方法之 __slots__原理解析
Aug 26 Python
基于nexus3配置Python仓库过程详解
Jun 15 Python
Python+Opencv身份证号码区域提取及识别实现
Aug 25 Python
python 爬虫请求模块requests详解
Dec 04 Python
详解Java中一维、二维数组在内存中的结构
Feb 11 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 Python
如何在django中运行scrapy框架
Apr 22 #Python
TensorFlow实现批量归一化操作的示例
Apr 22 #Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
Apr 22 #Python
python实现四人制扑克牌游戏
Apr 22 #Python
如何在django中实现分页功能
Apr 22 #Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 #Python
python实现扑克牌交互式界面发牌程序
Apr 22 #Python
You might like
PHP 引用是个坏习惯
2010/03/12 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
javascript下4个跨浏览器必备的函数
2010/03/07 Javascript
JQuery autocomplete 使用手册
2010/04/01 Javascript
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
javascript实现类似超链接的效果
2014/12/26 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
js实现仿QQ秀换装效果的方法
2015/03/04 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
Python入门篇之字典
2014/10/17 Python
Python中字符串的修改及传参详解
2016/11/30 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
tensorflow获取变量维度信息
2018/03/10 Python
python opencv人脸检测提取及保存方法
2018/08/03 Python
numpy.transpose()实现数组的转置例子
2019/12/02 Python
python基于opencv 实现图像时钟
2021/01/04 Python
迅雷Cued工作心得体会
2014/01/27 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
党员发展大会主持词
2015/07/03 职场文书
会议室管理制度范本
2015/08/06 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers