TensorFlow——Graph的基本操作
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)
上述的代码运行结果如下所示:
根据上述的运行结果,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)
在进行测试时,我们为元素添加了变量名,在设置变量名的时候,设置好的名字会自动添加后面的: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)来表示计算任务 激活会话(Session)执行图 使用张量(tensor)表示数据 定义变量(Variable) 使用feed可以任意赋值或者从中获取数据,通常与占位符一 ...
- Tensorflow学习笔记2:About Session, Graph, Operation and Tensor
简介 上一篇笔记:Tensorflow学习笔记1:Get Started 我们谈到Tensorflow是基于图(Graph)的计算系统.而图的节点则是由操作(Operation)来构成的,而图的各个节 ...
- TensorFlow 初级教程(三)
TensorFlow基本操作 import os import tensorflow as tf os.environ[' # 使用TensorFlow输出Hello # 创建一个常量操作( Cons ...
- TensorFlow白皮书
TensorFlow [1] is an interface for expressing machine learning algorithms, and an implementation for ...
- Tensorflow学习笔记4:分布式Tensorflow
简介 Tensorflow API提供了Cluster.Server以及Supervisor来支持模型的分布式训练. 关于Tensorflow的分布式训练介绍可以参考Distributed Tenso ...
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 全 ...
- TensorFlow实现与优化深度神经网络
TensorFlow实现与优化深度神经网络 转载请注明作者:梦里风林Github工程地址:https://github.com/ahangchen/GDLnotes欢迎star,有问题可以到Issue ...
- 【译】TensorFlow Python Docs 之 overview
Overview 综述 TensorFlow has APIs available in several languages both for constructing and executing a ...
- Tensorflow实践:CNN实现MNIST手写识别模型
前言 本文假设大家对CNN.softmax原理已经比较熟悉,着重点在于使用Tensorflow对CNN的简单实践上.所以不会对算法进行详细介绍,主要针对代码中所使用的一些函数定义与用法进行解释,并给出 ...
随机推荐
- 基于@AspectJ注解配置切面与基于XML配置切面
1. Waiter目标类 package com.smart.aop.advice.pointcut; public class Waiter { public void greetTo(String ...
- 移动端遇到的bug (长期更新)
移动端遇到的bug border-radius和transform在一起的bug 当父级设置了border-radius+overflow:hidden的时候,圆角是可以包住子级的,这是个很常见的场景 ...
- 深入理解CSS盒模型(转)
转自:https://www.cnblogs.com/chengzp/p/cssbox.html 基本概念 盒模型的组成大家肯定都懂,由里向外content,padding,border,margin ...
- H3C配置文件的显示与维护
- ZR普转提2
ZR普转提2 A 谢谢刁神教我A题 刚开始读错题了,以为是一个不可做的数位DP,然后就暴力滚粗 直到问了问刁神,发现自己题意是错的 然后成了比较简单的题目 直接暴力枚举每一位填什么,剩下的位数的数字都 ...
- <sUbjeCt>Reverse aAlignment SemInaR
翻译过来就是有关逆序对问题的专题. 因为大胆报名担任学校专题讲师所以跪着也要准备好课件...那什么是逆序对? 逆序对就是序列中ai>aj且i<j的有序对 举个栗子: 其中,5>4,但 ...
- MySQL 命令行(转)
1.登录mysql 本地:mysql -u root -p, 回车后输入密码; 也可以p后不加空格,直接加密码.回车就登录了 远程:mysql -hxx.xx.xx.xx -u -pxxx 2.查看数 ...
- Python网络编程笔记一
AF_INET:IPV4 AF_INET6:IPV6 套接字类型: SOCK_STREAM:TCP SOCK_DGRAM:UDP 创建TCP套接字,也可以不传递参数,默认创建TCP套接字 tcpSoc ...
- C# event 事件-2
本次是对第一篇事件随笔的补充笔记,涉及题目依然使用上一篇的习题.上一篇地址:https://www.cnblogs.com/FavoriteMango/p/11685702.html 1.事件的定义 ...
- linux大盘格式化分区
Linux 实例的磁盘管理 对于 Linux 系统上的大磁盘,也要采用 GPT 分区格式, 也可以不分区, 把磁盘当成一个整体设备使用. 在 Linux 上一般采用 XFS 或者 EXT4 来做大盘的 ...