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中使用poplib模块收取邮件的教程
Apr 29 Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 Python
python TKinter获取文本框内容的方法
Oct 11 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
Aug 12 Python
Python 用turtle实现用正方形画圆的例子
Nov 21 Python
解决pip安装的第三方包在PyCharm无法导入的问题
Oct 15 Python
Pycharm安装python库的方法
Nov 24 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
Dec 21 Python
python 获取谷歌浏览器保存的密码
Jan 06 Python
python 如何执行控制台命令与操作剪切板
May 20 Python
python munch库的使用解析
May 25 Python
python自动化八大定位元素讲解
Jul 09 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
实用函数7
2007/11/08 PHP
php学习笔记之面向对象编程
2012/12/29 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
Python中使用dom模块生成XML文件示例
2015/04/05 Python
python实现class对象转换成json/字典的方法
2016/03/11 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
Python中psutil的介绍与用法
2019/05/02 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
python dict乱码如何解决
2020/06/07 Python
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
几个常见的软件测试问题
2016/09/07 面试题
教师的实习鉴定
2013/12/15 职场文书
网络信息管理员岗位职责
2014/01/05 职场文书
小区门卫值班制度
2014/01/24 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
金融管理应届生求职信
2014/02/20 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书