【TensorFlow动手玩】基本概念: Tensor, Operation, Graph

原创 2016年11月04日 20:07:30

总则

Tensorflow是

  • 异步的:一处写,一处读,一处训练
  • 全局的:操作添加到全局的Graph中,监控添加到全局的summary中,参数/损失添加到全局的collection中
  • 符号式的:创建时没有具体值,运行时才传入

Tensorflow的三大核心结构:TensorOperationGraph

Tensor

Tensor可以看做一种符号化的句柄,指向操作的运算结果。在执行后返回基本类型、numpy.ndarray、或者其组成的list, tuple等。

创建Tensor

可以用函数(参看constant_op文档)创建常数、随机或者数列式的Tensor

x = tf.random_normal([2, 3], stddev=0.35, name = "weights")

Tensor的内容

常用数据顺序:batch*height*width*channel

Tensor的rank指维度,rank=0是标量。

可以用下标访问Tensor中的元素,注意y也是一个符号型运算结果。

y = x[0][2]

注意,Tensor对矩阵形状要求严格。长度为1的维度不会被自动缩减。

x1 = tf.constant(1.0, shape=[])      # 0D
x2 = tf.constant(1.0, shape=[1])      # 1D
x3 = tf.constant(1.0, shape=[1,1])    # 2D

如果你想创建一个标量Tensor,在指定shape时应该传入[],而不是[1]

Tensor的形状

有两种方法获得Tensor输出结果的形状。

静态方法:直接根据创建Tensor的方法推理出输出形状。

x = tf.random_normal([2, 3])
print(x.get_shape())

动态方法:创建一个获取形状的新Tensor,运行得到结果。

x = tf.random_normal([2, 3])
s = tf.shape(x)
sess = tf.Session()
print(sess.run(s))

注:Tensor据说在近期会被更名为Ouput。纯.吃多撑的。

Operation

Operation表示一种符号化的运算过程,是TensorFlow中的基本单元,即图中的节点。它的输入和输出都是Tensor

考虑以下代码:

x = tf.constant(1, shape=[1, 2])
y = tf.constant(2, shape=[1, 2])
z = tf.add(x, y)

其中包含了三个Operation
- 给x赋常数值
- 给y赋常数值
- x,y相加得到z

Operation没法从函数返回值中得到,可以用如下方法,从全局graph中查看当前所有Operation

g = tf.get_default_graph()
opts = g.get_operations()

Graph

TensorOperation都是Graph中的对象。Operation是图的节点,Tensor是图的边上流动的数据。
这里写图片描述

对象的.graph成员表示其所属的Graph,如无特别指定,创建的TensorOperation都在默认图中。

g1 = x.graph
g2 = opts[0].graph
g3 = tf.get_default_graph()
版权声明:本文为博主原创文章,未经博主允许不得转载。

tensorflow学习笔记(一):基本知识之tensor,operation和Session

1、tensor之———变量(variable)、常量(constant)、占位符(Placeholder) 2、Session的简介 3、Session中run的使用以及fetch和feed 4、交...
  • woaidapaopao
  • woaidapaopao
  • 2017年06月05日 22:49
  • 1630

TensorFlow学习(三):Graph和Session

之前讲完变量常量等等基本量的操作,意味着最基本的东西都有了,然后接下来很重要的就是那些量和操作怎么组成更大的集合,怎么运行这个集合。这些就是计算图谱graph和Session的作用了。IV.Graph...
  • xierhacker
  • xierhacker
  • 2016年12月24日 16:23
  • 20530

Tensorflow一些常用基本概念与函数(2)

摘要:本文主要对tf的一些常用概念与方法进行描述。为‘Tensorflow一些常用基本概念与函数’系列之二。...
  • lenbow
  • lenbow
  • 2016年08月11日 11:38
  • 36936

TensorFlow Python API解析:图的核心数据结构

1. Graph类的要点:(1) TensorFlow中的计算,表示为一个数据流图,简称“图”;(2) 一个Graph实例就是一个图,由一组Operation对象和Tensor对象构成:每个Opera...
  • deepknower
  • deepknower
  • 2016年12月23日 00:16
  • 1995

[TensorFlow]理解Tensorboard Graph

主旨在TensorFlow中每开发一个模型,都可以使用可视化调试工具TensorBoard得到这个session的Graph,这张图的结构和内容都不同于机器学习教材上介绍的典型神经网络结构图。本文试图...
  • wangyao_bupt
  • wangyao_bupt
  • 2017年04月08日 15:35
  • 2760

tensorflow学习笔记(一):基本知识之tensor,operation和Session

1、tensor之———变量(variable)、常量(constant)、占位符(Placeholder) 2、Session的简介 3、Session中run的使用以及fetch和feed 4、交...
  • woaidapaopao
  • woaidapaopao
  • 2017年06月05日 22:49
  • 1630

简单记录Tensorflow中Graph和Session的关系

本篇博客转自以下博客: Tensorflow学习笔记2:About Session, Graph, Operation and Tensor以下是正文:1Tensorflow是一个基于图(Graph...
  • xg123321123
  • xg123321123
  • 2017年09月18日 13:11
  • 654

编写TensorFlow文档

我们欢迎来自社区的Tensorflow文档的贡献。本文档介绍了如何为该文档做出贡献。特别地,本文档解释了以下内容: 文件所在位置。如何进行一致的编辑。在提交文档之前如何构建和测试您的文档更改。 您...
  • u010859707
  • u010859707
  • 2017年06月14日 19:55
  • 434

tensorflow 中导出/恢复模型Graph数据Saver

不得不说,在tensorflow中,这个问题一直困扰我好几天了,没有弄清graph个saver的关系。 下面我就记录一下两者的用法以及应用场景:Graph图是tensorflow的核心,所有的操作...
  • tengxing007
  • tengxing007
  • 2017年02月23日 15:09
  • 1322

Tensorflow Python API 翻译(math_ops)(第二部分)

减少元素操作 TensorFlow提供了一些操作,你可以用它来执行常见的数学运算,以此减少张量的维度。 tf.reduce_sum(input_tensor, reduction_indice...
  • WuLex
  • WuLex
  • 2017年03月28日 22:16
  • 1350
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【TensorFlow动手玩】基本概念: Tensor, Operation, Graph
举报原因:
原因补充:

(最多只允许输入30个字)