《动手学深度学习》——线性代数

数学

张量(代数对象)是描述具有任意数量轴的n维数组的通用方法。

向量是一阶张量,矩阵是二阶张量。

张量用特殊字体的大写字母表示(例如,X、Y和Z),它们的索引机制(例如读书笔记:张量_线性代数读书笔记:张量_标量_02)与矩阵类似。

使用三阶张量的一个例子:当我们开始处理图像时,张量将变得更加重要,图像以n维数组形式出现,其中3个轴对应于高度、宽度,以及一个通道(channel)轴,用于表示颜色通道(红色、绿色和蓝色)。

基本性质

乘以标量

将张量乘以或加上一个标量不会改变张量的形状,其中张量的每个元素都将与标量相加或相乘。



编程

基本性质

x = torch.arange(24).reshape(2, 3, 4)
x, x + 2, x * 2

输出

(tensor([[[ 0,  1,  2,  3],
          [ 4,  5,  6,  7],
          [ 8,  9, 10, 11]],
 
         [[12, 13, 14, 15],
          [16, 17, 18, 19],
          [20, 21, 22, 23]]]),
 tensor([[[ 2,  3,  4,  5],
          [ 6,  7,  8,  9],
          [10, 11, 12, 13]],
 
         [[14, 15, 16, 17],
          [18, 19, 20, 21],
          [22, 23, 24, 25]]]),
 tensor([[[ 0,  2,  4,  6],
          [ 8, 10, 12, 14],
          [16, 18, 20, 22]],
 
         [[24, 26, 28, 30],
          [32, 34, 36, 38],
          [40, 42, 44, 46]]]))

降维(求和)

sum
x.sum(axis=0), x.sum(), x.sum(axis=1), x.sum(axis=2)

输出

(tensor([[12, 14, 16, 18],
         [20, 22, 24, 26],
         [28, 30, 32, 34]]),
 tensor(276),
 tensor([[12, 15, 18, 21],
         [48, 51, 54, 57]]),
 tensor([[ 6, 22, 38],
         [54, 70, 86]]))