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实现的多线程端口扫描工具分享
Jan 21 Python
python检测远程服务器tcp端口的方法
Mar 14 Python
python中实现延时回调普通函数示例代码
Sep 08 Python
Python实现的归并排序算法示例
Nov 21 Python
Python学生信息管理系统修改版
Mar 13 Python
python中使用iterrows()对dataframe进行遍历的实例
Jun 09 Python
让代码变得更易维护的7个Python库
Oct 09 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
Python 项目转化为so文件实例
Dec 23 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
Python装饰器的应用场景代码总结
Apr 10 Python
Python可视化学习之seaborn调色盘
Feb 24 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
神族 PROTOSS 概述
2020/03/14 星际争霸
php 向访客和爬虫显示不同的内容
2009/11/09 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
三种php连接access数据库方法
2013/11/11 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
offsetHeight在OnLoad中获取为0的现象
2013/07/22 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
jQuery异步验证用户名是否存在示例代码
2014/05/21 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
JavaScript File分段上传
2016/03/10 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
angular-ui-sortable实现可拖拽排序列表
2016/12/28 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
Angular实现搜索框及价格上下限功能
2018/01/19 Javascript
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
微信小程序实现滑动操作代码
2020/04/23 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
美国羊皮公司:Overland
2018/01/15 全球购物
创建省级文明单位实施方案
2014/02/27 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
详解缓存穿透击穿雪崩解决方案
2021/05/28 Redis
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android