2022年3月

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]

一、定义

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