欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

哈达玛乘积、点乘积、矩阵-向量乘积、矩阵乘法--尽在一篇文章中!

最编程 2024-06-24 19:03:05
...

        机器学习领域,经常碰到一些tensor操作,tensor也有好几种积,使人眼花缭乱。本文就来把这些概念一次性说清楚。

在开始之前,我们先要明确一下张量、向量、矩阵、tensor这些概念是怎么一回事。

tensor中文名叫张量(本文后边就统一叫做tensor了),可以包含很多维度,0维、1维、2维、3维.......

0维的tensor叫做纯量,比如:

纯量

1维的tensor叫做向量,比如:

向量

2维的tensor叫做矩阵,比如:

矩阵

3维或以上的tensor没有具体的名称,一般就叫做n维tensor


ok,清楚了这些概念,我们就开始主题。

点积是针对向量,也就是1维tensor,对应位置元素相乘,再相加求总和

torch.dot文档
torch.dot示例

Hadamard积是针对任意纬度tensor,对应位置相乘,纬度不变。(和点积的区别是不求和)

PyTorch重载了Python的*运算符,用于计算Hadamard Product

Hadamard积 示例

矩阵-向量积故名思义就是计算一个矩阵和一个向量的乘积

矩阵-向量积示例

矩阵乘法就是两个矩阵相乘。

两个矩阵相乘需要满足一定条件。对于a x b,a的列数要等于b的行数。相乘结果的行数等于a的行数,列数等于b的列数。具体规则这里不展开,本文只做概念区分,相乘的原则可参考其他资料。

矩阵乘法示例