什么是张量(Tensor)
实际上就是一个多维数组
神经网络中的输入、输出和变换都是用张量来表示的,因此神经网络编程大量需要张量
张量是神经网络使用的主要数据结构,目的是创造更高维度的向量、矩阵。谷歌的开源机器学习框架TensorFlow也是建立在张量的基础上。
张量的具体实例
- 标量是0维张量
- 向量是一维张量
- 矩阵是二维张量
- 立方体是三维张量
- n维数组是n维张量
Tensor对象的3个属性:
- rank:秩,维度的总数
- shape: 形状,统计各个维度的元素数量
- axis: 轴,具体的某一个维度
以图像为例,每一幅图像可以看作由像素点构成的二维数组,而每个像素点又可以表示成RGB对应的3元组,经过这样的嵌套之后,每一幅图像实际上变成了一个高阶数组, 图示如下
用numpy表示张量
0维张量
import numpy
x = np.array(5)
print(x)
输出为 5
1维张量
import numpy
x = np.array([1,2,3,4])
print(x)
输出为 array([1,2,3,4])
用下面的可以代码可以得到张量的维数
x.ndim
1
2维张量
x = np.array([[1,2,3],[4,5,6]])
输出 [1,2,3]
[4,5,6]
3维张量
x = np.array([[[1,2,3],[4,5,6]],
[[7,8,9],[10,11,12]],
[[13,14,15],[16,17,18]])
shape(3,2,3)