【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()
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shenxiaolu1984/article/details/52813962

《深入了解.NET框架》

深入了解.net框架(一)理解受管理的执行(managed excution)    在受管理的执行过程的第一步是设计源程序。如果你想你的应用程序受益于common language runtime(...
  • benben1hao
  • benben1hao
  • 2001-06-19 11:46:00
  • 1275

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

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

TensorFlow 基本使用

Tensorflow的基本使用简介。
  • YhL_Leo
  • YhL_Leo
  • 2016-02-02 13:35:43
  • 46519

TensorFlow的一些基本概念

本篇要点: 1. TensorFlow框架的总体认识 2. graph的概念 3. tensor的概念 4. session的概念 5. 占位符和feed...
  • qq_16137569
  • qq_16137569
  • 2017-05-20 21:55:16
  • 957

解读tensorflow之rnn

from: http://lan2720.github.io/2016/07/16/%E8%A7%A3%E8%AF%BBtensorflow%E4%B9%8Brnn/ 这两天想搞清楚用tenso...
  • mydear_11000
  • mydear_11000
  • 2016-09-02 15:27:49
  • 55590

[TensorFlow]理解Tensorboard Graph

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

tensorflow中创建多个计算图(Graph)

tf程序中,系统会自动创建并维护一个默认的计算图,计算图可以理解为神经网络(Neural Network)结构的程序化描述。如果不显式指定所归属的计算图,则所有的tensor和Operation都是在...
  • dcrmg
  • dcrmg
  • 2018-01-11 21:38:55
  • 1006

TensorFlow基础:Graph与Variable

tensorflow的Graph对象 ------------------ 在tensorflow库在被加载的时候,它会自动创建一个Graph对象,并把它作为默认的数据流图. 所以在加载库后,就可以在...
  • u014281392
  • u014281392
  • 2017-06-28 19:53:30
  • 1649

【Tensorflow】tf.Graph()函数

tf.Graph() 函数非常重要,注意提现在两个方面 1. 它可以通过tensorboard用图形化界面展示出来流程结构 2. 它可以整合一段代码为一个整体存在于一个图中 声明情况大体有三种 1...
  • zj360202
  • zj360202
  • 2017-11-15 14:37:39
  • 2785

TensorFlow学习(三):Graph和Session

之前讲完变量常量等等基本量的操作,意味着最基本的东西都有了,然后接下来很重要的就是那些量和操作怎么组成更大的集合,怎么运行这个集合。这些就是计算图谱graph和Session的作用了。IV.Graph...
  • xierhacker
  • xierhacker
  • 2016-12-24 16:23:56
  • 30897
收藏助手
不良信息举报
您举报文章:【TensorFlow动手玩】基本概念: Tensor, Operation, Graph
举报原因:
原因补充:

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