怎样理解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笔记 :常用函数说明

本文章内容比较繁杂,主要是一些比较常用的函数的用法,结合了网上的资料和源码,还有我自己写的示例代码。建议照着目录来看。1.矩阵操作1.1矩阵生成这部分主要将如何生成矩阵,包括全0矩阵,全1矩阵,随机数...
  • u014595019
  • u014595019
  • 2016年10月13日 11:29
  • 54126

对Tensorflow中tensor的理解

对Tensorflow中tensor的理解
  • u012196371
  • u012196371
  • 2017年04月30日 22:19
  • 518

TensorFlow - Tensor理解与使用

如何理解TensorFlow中的tensorflyfishtensor 张量 英 [‘tensə; -sɔː] 美 [‘tɛnsɚ]What is a Tensor? Tensors are ...
  • flyfish1986
  • flyfish1986
  • 2017年05月30日 11:33
  • 2188

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

【前言】这篇文章将告诉你tensorflow的基本概念以及tensorflow的基本操作 TensorFlow的基本概念Tensor TensorFlow的核心API TensorFlow提供非...
  • huangbin6
  • huangbin6
  • 2017年02月18日 14:36
  • 3504

TensorFlow框架的简单理解

思路流程 Tensorflow入门代码(基本框架)# 简化调用库名 import tensorflow as tf import numpy as np# 模拟生成100对数据对, 对应的函数为...
  • u012609509
  • u012609509
  • 2016年09月18日 14:30
  • 2215

怎样理解TensorFlow中的Tensor?

Tensor翻译成中文是“张量”,在数学和物理学中运用较多,那么TensorFlow中的Tensor到底是什么呢?...
  • clcwcxfwf
  • clcwcxfwf
  • 2017年07月04日 20:49
  • 481

如何理解TensorFlow中的Graph

如何理解TensorFlow中的GraphflyfishTensorFlow中的Graph是一个图图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为G(V,E),其中,G表示一个图...
  • flyfish1986
  • flyfish1986
  • 2017年05月24日 18:53
  • 890

tensorflow学习(2):tensorflow中基本概念的理解

前言:tensorflow中有很多基本概念要理解,最好的方法是去官网跟着教程一步一步看,这里还有一些翻译的版本,对照着看有助于理解:tensorflow1.0 文档翻译正文:1,graph(图计算):...
  • qq_32166627
  • qq_32166627
  • 2017年03月23日 19:04
  • 2009

Tensorflow中关于Tensor和Variable的理解

刷课过程中思考到Variable和Tensor之间的区别,尝试发现在如下代码中:a = tf.Variable(tf.ones(1)) b = tf.add(a,tf.ones(1))a是Variab...
  • silent56_th
  • silent56_th
  • 2017年07月20日 20:56
  • 1434

如何理解TensorFlow,TensorFlow在神经网络训练中的作用是什么?

简单粗暴解释TensorFlow:TensorFlow即是一个实现机器学习算法的接口,同时也是执行机器学习算法的框架!! 举个例子:使用神经网络解决分类问题。 使用神经网络解决分类问题可以分成以下...
  • DATA8866
  • DATA8866
  • 2017年03月09日 17:24
  • 833
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:怎样理解TensorFlow中的Tensor?
举报原因:
原因补充:

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