Bootstrap

线性代数学习

1.标量由只有一个元素的张量表示

import torch

x = torch.tensor([3,0])
y = torch.tensor([2,0])

x + y, x * y, x / y, x**y

2.可以将向量视为标量值组成的列表

x = torch.arange(4)
x

3.通过张量的索引访问任一元素

x[3]

4.访问张量长度

len(x)

5.只有一个轴的张量,形状只有一个元素

x.shape

6.通过指定两个分量m和n创建形状为m×n的矩阵

A = torch.arange(20).reshape(5,4)

A

7.矩阵的转置

A.T

8.对称矩阵(symmetric matrix)

B = torch.tensor([[1,2,3],[2,0,4],[3,4,5]])
B

B == B.T

9.向量是标量的推广,矩阵是向量的推广,可以构建更多轴的数据结构

X = torch.arange(24).reshape(2, 3, 4)
X

10.给定具有相同形状的任何两个张量,任何按元素二元运算的结果都将是相同形状的张量

A = torch.arange(20, dtype=torch.float32).reshape(5, 4)
B = A.clone()
A, A + B

11.两个矩阵的按元素乘法称为哈达玛积(Hadamard product)

A * B

a = 2
X = torch.arange(24).reshape(2, 3, 4)
a + X, (a * X).shape

12.计算元素和

x = torch.arange(4, dtype=torch.float32)
x, x.sum()

13.表示任意形状张量的元素和

A.shape, A.sum()

A = torch.arange(20*2).reshape(2, 5, 4)
A.shape, A.sum()

14.指定求和汇总张量的轴

A_sum_axis0 = A.sum(axis=0)
A_sum_axis0, A_sum_axis0.shape

A_sum_axis1 = A.sum(axis=1)
A_sum_axis1, A_sum_axis1.shape

A.sum(axis=[0, 1])

15.一个与求和相关的量是平均值(mean/average)

A = A.float()
A.mean(), A.sum() / A.numel()

A.mean(axis=0),A.sum(axis=0) / A.shape[0]

16.计算总和或均值时保持轴数不变

sum_A = A.sum(axis=1, keepdim=True)
print(sum_A)

17.通过广播将A除以sum_A

A / sum_A

18.某个轴计算A元素的累积求和

A.cumsum(axis=0)

19.点积是相同位置的按元素乘积的和

y = torch.ones(4, dtype=torch.float32)
x, y, torch.dot(x, y)

20.可以通过执行按元素乘法,然后进行求和来表示两个向量的点积

torch.sum(x * y)

u = torch.tensor([3.0, -4.0])
torch.norm(u)

torch.abs(u).sum()

torch.norm(torch.ones((4, 9)))

;