神经网络的数据表示
关于神经网络中的数据格式,之前一直处于模糊阶段,分不清张量(tensor),向量(vector),维度(dimension)和轴(axis)等概念,经过查看很多资料,终于弄清楚了,现在将这些概念做一个解释,希望可以帮助大家。
0.轴和维度
个人觉得开始前很有必要说明轴和维度是什么。
张量的维度 通常叫做轴。
举个栗子:1D张量(向量)的轴为1即一维张量。矩阵的轴就是2即二维张量,多个二维矩阵组成的三维矩阵的轴为3即三维张量......依次类推。
向量的维度是向量(由一行元素组成)中包含的元素个数。
举个栗子:假设向量A=[1,2,3,4,5],那么向量A的维度就是5或者说向量A是一个5维向量。
如果你还没理解,别着急,继续往下看。
1.标量(0D张量)
仅包含一个数字的张量称为标量,在numpy中可以通过ndim属性查看一个张量轴的个数。
可以看到标量的轴的个数为0,轴的个数也叫阶(rank)。也叫0阶张量或0维张量。
2.向量(1D张量)
之前说过,向量就是1维张量,也叫1阶张量 .
![]()
请注意,上面例子中的a向量为4维向量,一维张量或一阶张量。
3.矩阵(2D张量)
矩阵由多个向量组成,矩阵是二维张量或二阶张量。
4.3D张量和更高维的张量
多个矩阵可以组合成一个三维张量,可以理解成立方体。
![]()
阅读完之后如果您还有什么问题,可以在底下给我留言,欢迎一起讨论。