Advertisement

深入解析神经网络矩阵中的点乘与叉乘操作(PyTorch版本)

阅读量:

官方文档


太长不看版本

  1. 点乘运算指的是两个矩阵中对应位置的元素进行相乘(即逐元素级element-wise操作)
    实现方式:可使用*运算符以及torch.mul(x, y)函数完成(包含广播机制)
    模型符号:一个圆形内包含一个实心点

  2. 叉乘属于传统线性代数中的矩阵相乘方式
    实现方式:可通过torch.mm()与torch.matmul()函数实现(支持广播机制)
    模型符号:一个圆圈内标注有一个叉×符号

  3. 逐元素相加操作
    实现方式:可采用+运算符或调用torch.add(x, y)函数完成
    模型符号:一个圆形中带有加号+

广播机制:当PyTorch中的某些操作具备广播功能时,其Tensor参数能够自动扩展为相同尺寸(无需复制数据内容)
若张量x与y满足广播条件,则结果张量的计算方法如下所示:
1、若x和y的维度不一致,需在维度较少的张量前补1,使两者维度保持统一。
2、针对每一个维度,结果张量对应的维度大小取x和y相应维度的最大值。
即:将列向量沿列方向扩展,行向量沿行方向扩展,使两个tensor达到相同尺寸后执行对应元素相乘。


一、

全部评论 (0)

还没有任何评论哟~