2022年3月
点乘、矩阵相乘-torch.mul() 、 torch.mm() 及torch.matmul()的区别
torch的乘积分两种
一、点乘
点乘都是broadcast的,可以用torch.mul(a, b)实现,也可以直接用*实现。
要求a,b有相同的维度
二、矩阵相乘
矩阵相乘有torch.mm和torch.matmul两个函数。其中前一个是针对二维矩阵,后一个是高维。当torch.mm用于大于二维时将报错。
a = [B,E]
b = [E,B]
c = torch.mm(a,b)
C 维度是[B,B]
向量的余弦距离、欧式距离
一、余弦距离
二、欧式距离
数组-动态规划
torch.norm
一、定义
1.返回所给tensor的矩阵范数或向量范数
2.范数本质上是一种距离
二、常用
1.最常用的就是做求2范数
2.可以用来对向量做归一化
三、代码
def normalize(x, axis=-1):
"""Normalizing to unit length along the specified dimension.
Args:
x: pytorch Variable
Returns:
x: pytorch Variable, same shape as input
"""
x = 1. * x / (torch.norm(x, 2, axis, keepdim=True).expand_as(x) + 1e-12)#2是范数计算中的幂指数值,就是取2范式
return x