PyTorch 线性代数

import torch
向量:一维张量
x = torch.arange(4)
print(len(x)) # len(x)输出长度
# 矩阵:二维张量
A = torch.arange(20).reshape(5, 4)
print(A.T) # .T方法获取转置矩阵
B = A.clone()
print(A * B) # 这里的乘积是Hadamard积,即按元素乘积
矩阵的降维
print(A.sum()) # 默认沿所有轴降维,得到单元素张量
print(A.sum(axis=0)) # 沿第0轴降维,得到1*4张量
print(A.sum(axis=[0, 1])) # 沿0和1轴降维,效果同sum()
print(A.cumsum(axis=0)) # 沿第0轴求和,结果附在最后一行,不改变原值

向量的点乘:dot
x = torch.arange(4, dtype=torch.float)
y = torch.ones(4)
print(torch.dot(x, y))

矩阵与向量乘积:mv
A = torch.arange(20, dtype=torch.float).reshape(5, 4)
x = torch.arange(4, dtype=torch.float)
print(torch.mv(A, x))

矩阵乘法:mm
B = torch.ones(4, 3)
print(torch.mm(A, B))

范数
u = torch.tensor([3, 4], dtype=torch.float)
print(torch.norm(u)) # 默认是L_2范数
# 矩阵范数
X = torch.ones(4, 9)
print(torch.norm(X)) # 默认是L_2范数

    所属分类:Python     发表于2022-01-29