《动手学深度学习》——线性代数
数学
张量(代数对象)是描述具有任意数量轴的n维数组的通用方法。
向量是一阶张量,矩阵是二阶张量。
张量用特殊字体的大写字母表示(例如,X、Y和Z),它们的索引机制(例如和)与矩阵类似。
使用三阶张量的一个例子:当我们开始处理图像时,张量将变得更加重要,图像以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]]))