【详解】神经网络矩阵的点乘与叉乘(pytorch版)

您所在的位置:网站首页 向量点乘和叉乘的运算关系是 【详解】神经网络矩阵的点乘与叉乘(pytorch版)

【详解】神经网络矩阵的点乘与叉乘(pytorch版)

#【详解】神经网络矩阵的点乘与叉乘(pytorch版)| 来源: 网络整理| 查看: 265

官方文档

太长不看版本 点乘为两个矩阵对应元素相乘(逐元素级element-wise) 实现方式:可以通过*和torch.mul(x, y)函数实现(含广播机制) 模型符号:一个圆圈中有一个实心点叉乘为传统的线性代数学的矩阵乘法 实现方式:可以通过torch.mm()和torch.matmul()实现(含广播机制) 模型符号:一个圆圈中有一个叉×逐元素相加 实现方式:可以通过+和torch.add(x, y)函数实现 模型符号:一个圆圈中有一个加号+

广播机制:如果PyTorch操作支持广播,则其Tensor参数可以自动扩展为相等大小(无需复制数据) 如果张量x和y可以符合广播的条件,那么:结果张量可以按照下面的方式计算: 1、如果x和y的维度不相同,用1来扩张维度少的那个,使两个张量维度一致。 2、对于每个维度,结果维度是x,y对应维度的最大值。 即:列向量按列扩充,行向量按行扩充,使两个tensor扩展为相同尺寸,进行对应元素相乘。

一、点乘

点乘就是对应位置元素相乘(element-wise),可以通过*和torch.mul()函数实现,在神经网络模型中的符号为: 点乘的模型简化符号

1.1 标量的点乘 示例: a = torch.randint(10,(3,3)) print(a) print(a*2) print(a.mul(a)) 输出: tensor([[9, 3, 1], [3, 7, 3], [4, 8, 3]]) tensor([[18, 6, 2], [ 6, 14, 6], [ 8, 16, 6]]) tensor([[81, 9, 1], [ 9, 49, 9], [16, 64, 9]] 1.2 向量的点乘(含广播机制BroadCasting)

广播机制:如果PyTorch操作支持广播,则其Tensor参数可以自动扩展为相等大小(无需复制数据) 如果张量x和y可以符合广播的条件,那么:结果张量可以按照下面的方式计算: 1、如果x和y的维度不相同,用1来扩张维度少的那个,使两个张量维度一致。 2、对于每个维度,结果维度是x,y对应维度的最大值。 即:列向量按列扩充,行向量按行扩充,使两个tensor扩展为相同尺寸,进行对应元素相乘。

示例: b = torch.tensor([[1],[2],[3]]) #列向量 print(b) c = b.T #转置为行向量 print(c) print(a*b) print(a*c) 输出: tensor([[1], [2], [3]]) tensor([[1, 2, 3]]) tensor([[ 9, 3, 1], #按列向右广播的结果 [ 6, 14, 6], [12, 24, 9]]) tensor([[ 9, 6, 3], #按行向下广播的结果 [ 3, 14, 9], [ 4, 16, 9]]) 1.3 矩阵点乘 示例: a = torch.randint(5,(2,2)) print(a) print(a.mul(a)) 输出: tensor([[0, 1], [0, 3]]) tensor([[0, 1], [0, 9]]) 二、叉乘

叉乘就是传统的矩阵乘法,可以通过torch.mm()和torch.matmul()实现。在神经网络模型中的符号为: 叉乘的模型简化符号

2.1 矩阵相乘 示例: x = torch.ones(3,4) y = torch.eye(4) #对角线为1,其余元素为0 print(torch.mm(x,y)) 输出: tensor([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]]) 2.2 torch.matmul(含广播机制BroadCasting) 示例: z = torch.ones(5,4,3) print(torch.matmul(z,x)) 输出: tensor([[[3., 3., 3., 3.], [3., 3., 3., 3.], [3., 3., 3., 3.], [3., 3., 3., 3.]], [[3., 3., 3., 3.], [3., 3., 3., 3.], [3., 3., 3., 3.], [3., 3., 3., 3.]], [[3., 3., 3., 3.], [3., 3., 3., 3.], [3., 3., 3., 3.], [3., 3., 3., 3.]], [[3., 3., 3., 3.], [3., 3., 3., 3.], [3., 3., 3., 3.], [3., 3., 3., 3.]], [[3., 3., 3., 3.], [3., 3., 3., 3.], [3., 3., 3., 3.], [3., 3., 3., 3.]]])


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3