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操作内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • tensorflow使用freeze_graph.py将ckpt转为pb文件的方法

    废话少说直接上代码样例如下 import tensorflow as tf import os from tensorflow.python.tools import freeze_graph # 本来这个model本无需解释太多,但是这么多人不能耐下心来看,那么我简单的说一下吧 # network是你们自己定义的模型结构而已 # ps: # def network(input): # return tf.layers.max_pooling2d(input, 2, 2) from model

  • tensorflow 实现从checkpoint中获取graph信息

    代码: import tensorflow as tf sess = tf.Session() check_point_path = 'variables' saver = tf.train.import_meta_graph('variables/save_variables.ckpt.meta') saver.restore(sess, tf.train.latest_checkpoint(check_point_path)) graph = tf.get_default_graph() #

  • tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式

    Google提供了一个工具,TensorBoard,它能以图表的方式分析你在训练过程中汇总的各种数据,其中包括Graph结构. 所以我们可以简单的写几行Pyhton,加载Graph,只在logdir里,输出Graph结构数据,并可以查看其图结构. 执行下述代码,将数据流图保存为图片,在目录F:/tensorflow/graph下生成文件events.out.tfevents.1508420019.XM-PC import tensorflow as tf from tensorflow.pyth

  • 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 =

  • Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现

    Tensorflow编程系统 Tensorflow工具或者说深度学习本身就是一个连贯紧密的系统.一般的系统是一个自治独立的.能实现复杂功能的整体.系统的主要任务是对输入进行处理,以得到想要的输出结果.我们之前见过的很多系统都是线性的,就像汽车生产工厂的流水线一样,输入->系统处理->输出.系统内部由很多单一的基本部件构成,这些单一部件具有特定的功能,且需要稳定的特性:系统设计者通过特殊的连接方式,让这些简单部件进行连接,以使它们之间可以进行数据交流和信息互换,来达到相互配合而完成具体工作的目的

  • python生成tensorflow输入输出的图像格式的方法

    TensorFLow能够识别的图像文件,可以通过numpy,使用tf.Variable或者tf.placeholder加载进tensorflow:也可以通过自带函数(tf.read)读取,当图像文件过多时,一般使用pipeline通过队列的方法进行读取.下面我们介绍两种生成tensorflow的图像格式的方法,供给tensorflow的graph的输入与输出. import cv2 import numpy as np import h5py height = 460 width = 345 w

  • 详解用TensorFlow实现逻辑回归算法

    本文将实现逻辑回归算法,预测低出生体重的概率. # Logistic Regression # 逻辑回归 #---------------------------------- # # This function shows how to use TensorFlow to # solve logistic regression. # y = sigmoid(Ax + b) # # We will use the low birth weight data, specifically: # y

  • python神经网络TensorFlow简介常用基本操作教程

    目录 要将深度学习更快且更便捷地应用于新的问题中,选择一款深度学习工具是必不可少的步骤. TensorFlow是谷歌于2015年11月9日正式开源的计算框架.TensorFlow计算框架可以很好地支持深度学习的各种算法. TensorFlow很好地兼容了学术研究和工业生产的不同需求. 一方面,TensorFlow的灵活性使得研究人员能够利用它快速实现新的模型设计: 另一方面,TensorFlow强大的分布式支持,对工业界在海量数据集上进行的模型训练也至关重要.作为谷歌开源的深度学习框架,Tens

  • tensorflow基本操作小白快速构建线性回归和分类模型

    目录 tensorflow是非常强的工具,生态庞大 tensorflow提供了Keras的分支 Define tensor constants. Linear Regression 分类模型 本例使用MNIST手写数字 Model prediction: 7 Model prediction: 2 Model prediction: 1 Model prediction: 0 Model prediction: 4 TF 目前发布2.5 版本,之前阅读1.X官方文档,最近查看2.X的文档. te

  • GIt的基本操作详解

    目录 基本操作 安装与配置 init add与commit clone vim status diff rm(删除文件) 恢复文件 MV(重命名) Git分支操作 查看历史记录 添加标签 清屏 基本操作 安装与配置 $ git config --global user.name "runoob" $ git config --global user.email test@runoob.com $ git config --global core.editor Vim//指定文本编辑器

  • TensorFlow在MAC环境下的安装及环境搭建

    给大家分享一下TensorFlow在MAC系统中的安装步骤以及环境搭建的操作流程. TensorFlow 底层的图模型结构清晰,容易改造:支持分布式训练:可视化效果好.如果做长期项目,接触较大数据集的话,TensorFlow很适用,而且谷歌也在不断优化完备它,对于使用深度学习朋友,TensorFlow是一个很好的工具. 在学习了一段时间台大李宏毅关于deep learning的课程,以及一些其他机器学习的书之后,终于打算开始动手进行一些实践了. 感觉保完研之后散养状态下,学习效率太低了,于是便想

随机推荐