TensorFlow中的“Tensor”到底是什么?

TensorFlow

我们可能会知道如何利用TensorFlow库进行工作,完成一些出色的模型,例如“cat-dog”模型(如下的gif图),完成接近100分的完美预测工作。但是,TensorFlow中的Tensor究竟是什么呢?

你可能知道,但是我不知道。。。

Updated-Deep Learning is an attempt to copy the pattern detection ability of a human brain, the main cause of pattern detection is Nueral Networks in our brain.

更新式的深度学习企图复制人脑的检测能力,进行模式检测的主要原因是神经网络就存在于我们人类的大脑中。

cat-dog.gif

什么是Tensor?

它就是一个数据单元的通用术语。

它同样可以被表示为一个矩阵的秩(Rank in Matrix)。它们是描述几何矢量、标量和其他张量之间的线性关系的几何对象。

什么是矩阵的秩: 矩阵的秩是线性代数中的一个概念。在线性代数中,一个矩阵A的列秩是线性独立的纵列的极大数,通常表示为r(A)或者rank A。通俗一点的说,如果把矩阵看成一个个行向量或者列向量,秩就是这些行向量或者列向量,也就是极大无关组中所含向量的个数。

(Updated-A) 张量由一组原始值组成一个任意数量的维度数组。

它是哪种类型的数据、标量或者向量?

如果你像我一样认为,它是一个升级版的向量,比如向量是升级版的标量,那就错了。标量和向量都是张量(tensor)。

什么是标量(Scalar):
它将各个通道的值构成一个整体,付给具有相同通道数的矩阵元素。
参照:理解Scalar

什么是秩或者什么是张量的秩?

用来表示数据的维度被称为秩。

它长什么样?

秩/维度 0个张量 或者一个标量

5       # 形状是[]

秩/维度 1个张量 或者 一个向量

[1., 2., 3., 4.]     # 形状是[4]

一个秩/维度 2 张量或者一个矩阵,这就是一个二维模型,例如一个照片有X轴和Y轴

[[1., 2., 3., 4.], [5., 6., 7., 8.]]            # 矩阵的形状是[2, 4]

一个秩/维度是3个张量或者 一个Tensor。 这就是三维模型,比如真实世界有X轴,Y轴,Z轴。简单地讲,它就是矩阵内的矩阵。

[[[1., 2., 3., 4.]],[[5., 6., 7., 8.]]]         # Tensor的形状是[2, 1, 4]

这就是如何增加张量的维度的方法。

Tensor a mathematical object analogous to but more general than a vector, represented by an array of components that are functions of the coordinates of a space.

Tensor是一个数学意义上的对象,它类似于一个矢量(向量)但是比矢量更普遍,它用一组空间坐标函数来表示。

说明

#原文# https://hackernoon.com/what-the-hell-is-tensor-in-tensorflow-e40dbf0253ee
#作者# SAGAR SHARMA
#发布时间# 2017/10/10
#分类# TensorFlow(Deep Learning)

推荐阅读更多精彩内容