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编写的最短路径算法
Mar 25 Python
简单介绍Python的Django框架的dj-scaffold项目
May 30 Python
详解Python中heapq模块的用法
Jun 28 Python
解决python3在anaconda下安装caffe失败的问题
Jun 15 Python
Python实现简单的语音识别系统
Dec 13 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
django的ORM操作 删除和编辑实现详解
Jul 24 Python
python 并发编程 阻塞IO模型原理解析
Aug 20 Python
Python 实现Serial 与STM32J进行串口通讯
Dec 18 Python
Django中和时区相关的安全问题详解
Oct 12 Python
Python用SSH连接到网络设备
Feb 18 Python
python中filter,map,reduce的作用
Jun 10 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
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
php实现读取超大文件的方法
2014/07/28 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
2016/05/21 PHP
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
浅析vue插槽和作用域插槽的理解
2019/04/22 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
2020/07/01 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
python实现的简单FTP上传下载文件实例
2015/06/30 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
Django filter动态过滤与排序实现过程解析
2020/11/26 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
阿波罗盒子:Apollo Box
2017/08/14 全球购物
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
师范大学毕业自我鉴定
2013/11/21 职场文书
运动会解说词100字
2014/01/31 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
超市开学活动方案
2014/03/01 职场文书
自动一体化专业求职信
2014/03/15 职场文书
毕业论文致谢格式模板
2015/05/14 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android
MySQL Server层四个日志的实现
2022/03/31 MySQL