norm 是计算范数,范数就是对矩阵(向量)里的数进行某种运算,获得一个数值,形容这个矩阵的规模(大小)
norm(a, p) 有2个参数
a 是一个张量,p是一个数字
公式如下:
即分别求每个元素的p次方,再求和,最后开p次根号
当 p = 1 时,即 求 所有数之和
当 p = 2 时,即 求 所有数的平方和,再跟平方根
当 p = 无穷大,高数学过,极限=元素最大值
当 p = 无穷小,高数学过,极限=元素最小值
代码
import torch
# 例1、一维张量
a = torch.tensor([1, 2, 3, 4], dtype=torch.float32)
print(a)
# norm(a, p) 是计算范数,公式是: (x1^p + x2^p + x3^p + ...) ^ (1/p)
# 即对a中的每个元素求p次方,然后求和,最后再求p次根
print(torch.norm(a)) # 默认p=2, 故 1^2 + 2^2 + 3^2 + 4^2 = 30, 再开根号,得到5.4772
print(torch.norm(a, 1)) # 指定p=1,故 1 + 2 + 3 + 4 = 10
print(torch.norm(a, float('inf'))) # inf指的是无穷大,即p=无穷大,故极限为元素里最大的值,即4
print()
# 例2、二维张量
b = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)
print(torch.norm(b)) # p=2, 故 1^2 + 2^2 + 3^2 + 4^2 = 30, 再开根号,得到5.4772
print(torch.norm(b, 1)) # p=1, 故 1 + 2 + 3 + 4 = 10
print(torch.norm(b, float('inf'))) # p=无穷大,故极限为元素里最大的值,即4
运行结果
tensor([1., 2., 3., 4.])
tensor(5.4772)
tensor(10.)
tensor(4.)
tensor(5.4772)
tensor(10.)
tensor(4.)
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏