我在学习Tensorflow的CNN教程时,遇到一个问题:在Tensorflow以及一般情况下,程序上‘张量’和多维矩阵有什么区别?
我尝试自己研究张量的定义,发现张量可以是n阶的,每个元素包含n维的信息。例如,如果我们有一个张量A和一个数据点,坐标为(3,2,5,4),那么我们是在讨论一个包含一个元素的4维张量A,对吗?
我找到的其他文章说,张量与数组相同,区别在于张量的元素可以变换。但我还是不明白张量和普通多维数组的区别。我们总是可以对数组应用一个函数来变换元素。
您能否尝试澄清它们的定义/属性和区别?
回答:
这个演示文稿的第7张幻灯片对各种张量有很好的可视化展示。
我刚开始时也有同样的疑惑。答案其实很简单。
“张量”是指N维值集的一般用词。我们对低阶张量有数学名称:标量、向量、矩阵。
在Tensorflow中,张量的阶数就是它的维度。这里有一些例子:
---------------------------------------------------------------| Rank of | Math | Example || tensor | entity | |---------------------------------------------------------------| 0 | Scalar | x = 42 || 1 | Vector | z = [10, 15, 20] || 2 | Matrix | a = [[1 0 2 3], || | | [2 1 0 4], || | | [0 2 1 1]] || 3 | 3-Tensor | A single image of shape: || | | [height, width, color_channels] || | | ex: [1080, 1920, 3] || 4 | 4-Tensor | A batch of images with shape: || | | [batch_size, height, width, channels] || | | ex: [10, 1080, 1920, 3] || N | n-dim | You get the idea... || | Tensor | |---------------------------------------------------------------