怎样理解TensorFlow中的Tensor?

原创 2017年07月04日 20:49:28

Tensor是TensorFlow最基础和最核心的数据结构,TensorFlow用Tensor这种数据结构来表示所有的数据,TensorFlow的computation graph(计算图)中的节点之间只用Tensor传递数据。Tensor翻译成中文是“张量”,在数学和物理学中运用较多,那么TensorFlow中的Tensor到底是什么呢?本文将解释这个概念。

 

Tensor的rank(


Tensor的秩和矩阵的秩不一样,Tensor的秩是指这个数据结构的维数。比如一个标量就是一个秩为0的Tensor,一个向量就是一个秩为1的Tensor,一个矩阵就是一个秩为2的Tensor,一个3维数组就是一个秩为3的Tensor,如下表所示:


Tensor的shape(形状)


描述一个Tensor,光知道维数还不够,还必须知道每一维的大小,TensorFlow用shape来定义它,比如[5]表示有5个元素的向量,[3, 4]表示第一维的大小为3,第二维的大小为4的矩阵,参见下表:


Tensor的数据类型


每个Tensor有一个固定的数据类型。常用的数据类型有:DT_FLOAT,DT_DOUBLE,DT_INT32等,DT即Data Type之意。TensorFlow支持的所有数据类型如下表所示:


如何知道一个Tensor的shape


给定一个复杂的Tensor,我们怎样知道它的shape呢?下面通过一个简单的例子来描述。

假如有这样一个Tensor

t = [[[2,3], [4,5], [6,7]], [[8,9], [10,11], [12,13]], [[14,15], [16,17], [18,19]]]

我们将它表示成为一颗树,来辅助计算它的shape:


我们可以看到,第4层(即最底层)的节点2个为一组,第3层的节点3个为一组,第2层的节点3个为一组,这样该Tensor的shape即为[3, 3, 2]。除去根节点,树的层数即是该Tensor的秩,为3。


结语


上面说了这么多,好像Tensor是一个很高大上的东西,其实不然,它就是一个多维数组而已。比如你在C++里定义一个多维数组:

int a[2][3][4][5][6];

将它看作一个Tensor,则它的秩为5,shape为[2, 3, 4, 5, 6]。



更多文章请关注我的公众号:机器学习交流

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

tensorflow 中对数组元素的操作

上个月没咋写文章。 这个月开始,多进行进行总结分享。 tensorflow中对tensor对象进行像numpy数组一样便捷的操作是不可能的, 至少对1.2以及之前的版本而言。 从issu...

打印tensorflow中tensor的元素

import tensorflow as tf sequence = [2,-4, 7] a = tf.abs(sequence) print(a)这种方式只能打印出 a 的 shape,不能打印出 ...

学习TensorFlow,打印输出tensor的值

在学习TensorFlow的过程中,我们需要知道某个tensor的值是什么,这个很重要,尤其是在debug的时候。也许你会说,这个很容易啊,直接print就可以了。其实不然,print只能打印输出sh...

tensorflow中张量的理解

自己通过网上查询的有关张量的解释,稍作整理。 TensorFlow用张量这种数据结构来表示所有的数据.你可以把一个张量想象成一个n维的数组或列表.一个张量有一个静态类型和动态类型的维数.张量...

tensorflow张量详解

从TensorFlow的名字就可以看出张量(tensor)是一个很重的概念。在tensorflow程序中所有的数据都通过张量的形式来表示。从功能的角度看,张量可以被理解为多维数组。其中零阶张量表示标量...

pthread_kill 和 sigaction 函数

pthread_kill: 别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。还记得signal吗,大部分signal的默认动作是终止进程的运行,所以,我们才要用si...

tensorflow的张量(tensor)的理解

以下内容转载至:http://blog.csdn.net/pandamax/article/details/63684633 自己通过网上查询的有关张量的解释,稍作整理。 ...

TensorFlow系列03——TensorFlow基本概念Tensor理解

【前言】这篇文章将告诉你tensorflow的基本概念以及tensorflow的基本操作 TensorFlow的基本概念Tensor TensorFlow的核心API TensorFlow提供非...

TensorFlow - Tensor理解与使用

如何理解TensorFlow中的tensorflyfishtensor 张量 英 [‘tensə; -sɔː] 美 [‘tɛnsɚ]What is a Tensor? Tensors are ...

关于Tensorflow计算图与Tensor的理解

关于Tensorflow计算模型tensorflow的编程和我以往接触的编程方式有很大差异。以前的编程,无论是编译类型的语言还是脚本语言,都是一步一步的,变量计算后,就会得到结果,比如c=a+b,当执...
  • qian99
  • qian99
  • 2017-04-23 14:51
  • 1502
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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