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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
详解JavaScript编程中的window与window.screen对象
Oct 26 Python
Python中属性和描述符的正确使用
Aug 23 Python
用生成器来改写直接返回列表的函数方法
May 25 Python
Django forms组件的使用教程
Oct 08 Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
Dec 04 Python
Python+OpenCV感兴趣区域ROI提取方法
Jan 10 Python
python2和python3在处理字符串上的区别详解
May 29 Python
python用for循环求和的方法总结
Jul 08 Python
python hashlib加密实现代码
Oct 17 Python
selenium.webdriver中add_argument方法常用参数表
Apr 08 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目录导航文件代码
2006/10/09 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
php阳历转农历优化版
2016/08/08 PHP
php微信开发自定义菜单
2016/08/27 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
基于jquery的表格排序
2010/09/11 Javascript
JavaScript中的细节分析
2012/06/30 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
js断点调试经验分享
2017/12/08 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
vue render函数动态加载img的src路径操作
2020/10/26 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
Python运用于数据分析的简单教程
2015/03/27 Python
使用Python判断质数(素数)的简单方法讲解
2016/05/05 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
Puppeteer使用示例详解
2019/06/20 Python
django-初始配置(纯手写)详解
2019/07/30 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
商得四方公司面试题(gid+)
2014/04/30 面试题
采购员的工作职责
2013/12/26 职场文书
纪检监察建议书
2014/05/19 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis
Win11快速关闭所有广告推荐
2022/04/19 数码科技