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)))