pytorch中的矩阵乘法

1. 运算符介绍

关于@运算,*运算,torch.mul(), torch.mm(), torch.mv(), tensor.t()

@ 和 *代表矩阵的两种相乘方式:

@表示常规的数学上定义的矩阵相乘;
*表示两个矩阵对应位置处的两个元素相乘。

1.1 矩阵点乘

*和torch.mul()等同:表示相同shape矩阵点乘,即对应位置相乘,得到矩阵有相同的shape。

一,对应点相乘,x.mul(y) ,即点乘操作,点乘不求和操作,又可以叫作Hadamard product;点乘再求和,即为卷积

python 复制代码
>>> a = torch.Tensor([[1,2], [3,4], [5, 6]])
>>> a
tensor([[1., 2.],
        [3., 4.],
        [5., 6.]])
>>> a.mul(a)
tensor([[ 1.,  4.],
        [ 9., 16.],
        [25., 36.]])
 
>>> a * a
tensor([[ 1.,  4.],
        [ 9., 16.],
        [25., 36.]])

1.2 矩阵乘法

@和torch.mm(a, b)等同:正常矩阵相乘,要求a的列数与b的行数相同。

torch.mv(X, w0):是矩阵和向量相乘.第一个参数是矩阵,第二个参数只能是一维向量,等价于X乘以w0的转置

二,矩阵相乘,x.mm(y)或者x.matmul(b), 矩阵大小需满足: (i, n)x(n, j)

python 复制代码
>>> a
tensor([[1., 2.],
        [3., 4.],
        [5., 6.]])
>>> b = a.t()  # 转置
>>> b
tensor([[1., 3., 5.],
        [2., 4., 6.]])
 
>>> a.mm(b)
tensor([[ 5., 11., 17.],
        [11., 25., 39.],
        [17., 39., 61.]])
 
>>> a.matmul(b)
tensor([[ 5., 11., 17.],
        [11., 25., 39.],
        [17., 39., 61.]])

多维矩阵相乘

3维矩阵相乘

python 复制代码
>>> a = torch.randn(64, 128, 56)
>>> b = torch.randn(64, 56, 72)
 
>>> a.shape
torch.Size([64, 128, 56])
>>> b.shape
torch.Size([64, 56, 72])
 
>>> d = a.matmul(b)  # 多出的一维作为batch提出来,其他部分做矩阵乘法。
 
>>> d.shape
torch.Size([64, 128, 72])  
 
# a.mm(b) 这个不行会报错:untimeError: self must be a matrix

4维矩阵相乘

python 复制代码
>>> a = torch.randn(64, 3, 128, 56)
>>> b = torch.randn(64, 3, 56, 72)
 
>>> d = a.matmul(b)  # 多出的维数作为batch提出来,其他部分做矩阵乘法。
 
>>> d.shape
torch.Size([64, 3, 128, 72])  
 
# a.mm(b) 这个不行会报错:untimeError: self must be a matrix

1.3 向量乘积

x.dot(y): 向量乘积,x,y均为一维向量。

Y.t():矩阵Y的转置。

ref

  1. https://blog.csdn.net/jizhidexiaoming/article/details/82502724
  2. https://blog.csdn.net/beauthy/article/details/121103704
相关推荐
程序猿000001号2 小时前
DeepSeek模型:开启人工智能的新篇章
人工智能·deepseek
梦云澜5 小时前
论文阅读(十四):贝叶斯网络在全基因组DNA甲基化研究中的应用
论文阅读·人工智能·深度学习
忆~遂愿6 小时前
3大关键点教你用Java和Spring Boot快速构建微服务架构:从零开发到高效服务注册与发现的逆袭之路
java·人工智能·spring boot·深度学习·机器学习·spring cloud·eureka
纠结哥_Shrek7 小时前
pytorch逻辑回归实现垃圾邮件检测
人工智能·pytorch·逻辑回归
辞落山7 小时前
自定义数据集,使用 PyTorch 框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测
人工智能·pytorch·逻辑回归
天宇琪云8 小时前
关于opencv环境搭建问题:由于找不到opencv_worldXXX.dll,无法执行代码,重新安装程序可能会解决此问题
人工智能·opencv·计算机视觉
大模型之路8 小时前
大模型(LLM)工程师实战之路(含学习路线图、书籍、课程等免费资料推荐)
人工智能·大模型·llm
deephub9 小时前
十大主流联邦学习框架:技术特性、架构分析与对比研究
人工智能·python·深度学习·机器学习·联邦学习
纠结哥_Shrek9 小时前
pytorch使用SVM实现文本分类
pytorch·支持向量机·分类
英国翰思教育9 小时前
留学毕业论文如何利用不同问题设计问卷
人工智能·深度学习·学习·算法·学习方法·论文笔记