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中xrange用法分析
Apr 15 Python
Python使用turtule画五角星的方法
Jul 09 Python
Python 网页解析HTMLParse的实例详解
Aug 10 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
对Python中range()函数和list的比较
Apr 19 Python
python连接mongodb密码认证实例
Oct 16 Python
详解Python中的format格式化函数的使用方法
Nov 20 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
Python3实现建造者模式的示例代码
Jun 28 Python
matplotlib部件之套索Lasso的使用
Feb 24 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 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 MsSql server时遇到的中文编码问题
2009/06/11 PHP
js活用事件触发对象动作
2008/08/10 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
node.js程序作为服务并在windows下开机自启动(用forever)
2017/03/29 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
详解如何使用nvm管理Node.js多版本
2019/05/06 Javascript
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
详解Python的单元测试
2015/04/28 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
python仿evething的文件搜索器实例代码
2019/05/13 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
python动态文本进度条的实例代码
2020/01/22 Python
CSS中垂直居中的简单实现方法
2015/07/06 HTML / CSS
html5 标签
2009/07/16 HTML / CSS
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
C语言面试题
2015/10/30 面试题
社区服务活动总结
2014/05/07 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
管理失职检讨书范文
2015/05/05 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
关于MySQL中的 like操作符详情
2021/11/17 MySQL