← 返回首页
Pytorch与线性代数运算
发表时间:2024-01-23 07:38:44
Pytorch与线性代数运算

Pytorch与线性代数运算。

1.Pytorch的范数运算

“范数”是数学中的一种基本概念。在泛函分析中,它定义在赋范线性空间中,并满足一定的条件,即:非负性,齐次性,三角不等式。它常常被用来度量某个向量空间(或矩阵)中的每个向量的长度或大小。

向量的范数定义:向量的范数是一个函数 ||x||, 满足非负性 ||x|| >= 0,齐次性 ||cx|| = |c| ||x|| ,三角不等式 ||x+y|| <= ||x|| + ||y||。

范数是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度或大小。半范数可以为非零的矢量赋予零长度。

定义范数的矢量空间是赋范矢量空间,同样,定义半范数的矢量空间就是赋半范矢量空间。

2.Pytorch中封装好的用于计算范数的函数

实例:

import torch

a = torch.rand(2, 1)
b = torch.rand(2, 1)
print(a)
print(b)
print("---------------")
#a-b的绝对值求和
print(torch.dist(a, b, p = 1))
#a-b的平方再开根号
print(torch.dist(a, b, p = 2))
#a-b的三次方再开根号
print(torch.dist(a, b, p = 3))
print("---------------")
print(torch.norm(a, p=0))
print(torch.norm(a, p=1))
print(torch.norm(a, p=2))
#范数和
print(torch.norm(a, p='fro'))

运行结果:

tensor([[0.8991],
        [0.6836]])
tensor([[0.4861],
        [0.0496]])
---------------
tensor(1.0469)
tensor(0.7566)
tensor(0.6877)
---------------
tensor(2.)
tensor(1.5827)
tensor(1.1294)
tensor(1.1294)