返回顶部
首页 > 资讯 > 精选 >pytorch中矩阵乘法和数组乘法怎么实现
  • 556
分享到

pytorch中矩阵乘法和数组乘法怎么实现

2023-07-05 17:07:29 556人浏览 独家记忆
摘要

本篇内容介绍了“PyTorch中矩阵乘法和数组乘法怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、torch.mul该乘法可简单理

本篇内容介绍了“PyTorch中矩阵乘法和数组乘法怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、torch.mul

该乘法可简单理解为矩阵各位相乘,一个常见的例子为向量点乘,源码定义为torch.mul(input,other,out=None)。其中other可以为一个数也可以为一个张量,other为数即张量的数乘。

该函数可触发广播机制(broadcast)。只要mat1与other满足broadcast条件,就可可以进行逐元素相乘 。

tensor1 = 2*torch.ones(1,4)tensor2 = 3*torch.ones(4,1)print(torch.mul(tensor1, tensor2))#输出结果为:tensor([[6., 6., 6., 6.],        [6., 6., 6., 6.],        [6., 6., 6., 6.],        [6., 6., 6., 6.]])
# 生成指定张量c = torch.Tensor([[1, 2, 3], [4, 5 ,6]])print(c.shape)  # 2*3print(c) # 生成随机张量d = torch.randn(2,2,3) print(d)print(d.shape)  # 2*2*3 mul = torch.mul(c, d) # c会自动broadcast和d进行匹配print(mul.shape)      # 2*2*3print(mul)

二、torch.mm

该函数一般只能用来计算两个二维矩阵的矩阵乘法,而且不支持broadcast操作。该函数源码定义为torch.mm(input,mat2,out=None) ,参数与返回值均为tensor形式。

a=torch.ones(4,3)  b=2*torch.ones(3,2)  c=torch.empty(4,2)  torch.mm(a,b,out=c)  print(torch.mm(a,b))  print( c )#输出结果为tensor([[6., 6.],        [6., 6.],        [6., 6.],        [6., 6.]])tensor([[6., 6.],        [6., 6.],        [6., 6.],        [6., 6.]])

三、torch.matmul

这个矩阵乘法是在torch.mm的基础上增加了广播机制,源码定义为torch.matmul(input,other,out=None)。

其基本运算规则如下:

如果两个参数都为一维,则等价于torch.mul,需要注意的是:此时的out不接受任何参数

如果两个张量都为二维且符合矩阵相乘规则,或第一个参数为一维(长度为m,这里等价为大小为1* m),第二个参数为二维(大小为m* n)则运算等价于torch.mm

如果第一个参数为二维(大小m* n),第二个参数为一维(长度为n),这里第二个参数会进行转置成为n* 1的列向量,随后进行矩阵相乘,将得到的结果再进行转置,最终返回一个大小为1* m的向量

tensor1 = torch.tensor([[1,1,1,1],[2,2,2,2],[3,3,3,3]],dtype=torch.float32)tensor2 = torch.ones(4)print(tensor1.size())print(tensor2.size())print(torch.matmul(tensor1, tensor2).shape)#输出结果为:torch.Size([3, 4])torch.Size([4])torch.Size([3])

还有一种情况就是任意一个参数至少为3维, 当前面的维度相同且最后两个维度符合二维矩阵运算规则可进行计算,例如第一参数的大小为a* b * c * m,第二个参数的大小为a* b* m* d,则返回一个大小为a* b* c * d的张量,可触发广播机制。

tensor1 = torch.ones(1,4,3,2)tensor2 = torch.ones(2,6)print(torch.matmul(tensor1, tensor2).size())#输出结果为:torch.Size([1, 4, 3, 6])

四、三维带Batch矩阵乘法 torch.bmm()

torch.bmm(bmat1,bmat2), 其中bmat1(B×n×m),bmat2(B×m×d)输出out的维度是B×n×d,该函数两个输入必须三维矩阵中的第一维要要相同,不支持broadCast操作。

五、torch中tensor数组的广播计算

首先定义两个张量,x的形状是[1,2,1],y的形状是[1,2,2]。

当x与y相乘时,由于x.size(2)不等于y.size(2),x会被扩展为[1,2,2]形状,然后再与张量y进行乘法运算。

x = torch.rand(1,2,1)y = torch.rand(1,2,2)

pytorch中矩阵乘法和数组乘法怎么实现

“pytorch中矩阵乘法和数组乘法怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: pytorch中矩阵乘法和数组乘法怎么实现

本文链接: https://lsjlt.com/news/353467.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • pytorch中矩阵乘法和数组乘法怎么实现
    本篇内容介绍了“pytorch中矩阵乘法和数组乘法怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、torch.mul该乘法可简单理...
    99+
    2023-07-05
  • python实现矩阵乘法
    矩阵相乘需要前面矩阵的行数与后面矩阵的列数相同方可相乘。第一步,先将前面矩阵的每一行分别与后面矩阵的列相乘,作为结果矩阵的行列;第二步算出结果即可。 # 2 3 3 4 # 1 2 ...
    99+
    2024-04-02
  • numpy和tensorflow中的各种乘法(点乘和矩阵乘)
    点乘和矩阵乘的区别:  1)点乘(即“ * ”) ---- 各个矩阵对应元素做乘法 若 w 为 m*1 的矩阵,x 为 m*n 的矩...
    99+
    2024-04-02
  • NumPy矩阵乘法的实现
    目录NumPy矩阵乘法逐元素矩阵乘法矩阵乘积运算矩阵点积NumPy矩阵乘法 矩阵乘法是将两个矩阵作为输入值,并将 A 矩阵的行与 B 矩阵的列对应位置相乘再相加,从而生成一个新矩阵,...
    99+
    2023-02-10
    NumPy矩阵乘法
  • NumPy如何实现矩阵乘法
    这篇文章主要介绍NumPy如何实现矩阵乘法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!NumPy 支持的几类矩阵乘法也很重要。元素级乘法你已看过了一些元素级乘法。你可以使用 multiply 函数或 * 运算符来实...
    99+
    2023-06-14
  • python如何实现矩阵乘法
    小编给大家分享一下python如何实现矩阵乘法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!矩阵相乘需要前面矩阵的行数与后面矩阵的列数相同方可相乘。第一步,先将前面矩阵的每一行分别与后面矩阵的列相乘,作为结果矩阵的行列;第...
    99+
    2023-06-26
  • python矩阵乘法怎么算
    在 python 中,使用 numpy 库的 matmul() 函数对矩阵执行乘法:创建矩阵。使用 matmul() 函数进行矩阵乘法。 Python中矩阵乘法的计算 如何计算Pyth...
    99+
    2024-05-22
    python
  • 怎么在python中实现矩阵乘法运算
    今天就跟大家聊聊有关怎么在python中实现矩阵乘法运算,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相...
    99+
    2023-06-14
  • NumPy 矩阵乘法的实现示例
    NumPy 支持的几类矩阵乘法也很重要。 元素级乘法 你已看过了一些元素级乘法。你可以使用 multiply 函数或 * 运算符来实现。回顾一下,它看起来是这样的: m = n...
    99+
    2024-04-02
  • java 矩阵乘法的mapreduce程序实现
    java 矩阵乘法的mapreduce程序实现map函数:对于矩阵M中的每个元素m(ij),产生一系列的key-value对<(i,k),(M,j,m(ij))>其中k=1,2.....知道矩阵N的总列数;对于矩阵N中的每个元素...
    99+
    2023-05-31
    java 矩阵乘法 mapreduce
  • PHP如何使用数组循环来实现矩阵乘法
    这篇文章主要介绍“PHP如何使用数组循环来实现矩阵乘法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP如何使用数组循环来实现矩阵乘法”文章能帮助大家解决问题。什么是矩阵乘法在数学中,一个矩阵是由...
    99+
    2023-07-06
  • C++动态规划算法实现矩阵链乘法
    问题描述: 给定n个矩阵的链<A1,A2,…,An>,矩阵Ai的规模为p(i-1)×p(i) (1<=i<=n),求完全括号化方案,...
    99+
    2024-04-02
  • python中怎么利用numpy.matmul实现矩阵相乘
    这篇文章将为大家详细讲解有关python中怎么利用numpy.matmul实现矩阵相乘,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。说明该函数返回两个数组的矩阵乘积。虽然返回二维数组的正常乘...
    99+
    2023-06-20
  • 怎么使用C++动态规划算法实现矩阵链乘法
    这篇文章主要介绍“怎么使用C++动态规划算法实现矩阵链乘法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用C++动态规划算法实现矩阵链乘法”文章能帮助大家解决问题。问题描述:给定n个矩阵的链&...
    99+
    2023-07-02
  • numpy矩阵乘法中的multiply,matmul和dot的使用
    目录1. multiply(矩阵点乘)2. dot(矩阵叉乘)3. matmul总结用numpy做矩阵运算时,少不了用到矩阵乘法。本文帮你迅速区分multiply, matmul和d...
    99+
    2023-02-15
    numpy multiply matmul dot numpy矩阵乘法
  • R语言RcppEigen计算点乘与矩阵乘法连乘算法错误解决方法是什么
    本篇内容主要讲解“R语言RcppEigen计算点乘与矩阵乘法连乘算法错误解决方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“R语言RcppEigen计算点乘与矩阵乘法连乘算法错误解决方法...
    99+
    2023-06-25
  • C/C++如何实现两矩阵相乘之模拟法
    目录数学中两矩阵怎么相乘C/C++语言实现总结数学中两矩阵怎么相乘 矩阵相乘需要前面矩阵的列数与后面矩阵的行数相同方可相乘。 将前面矩阵的第i行各元素分别与后面矩阵的第j列相应位置元...
    99+
    2023-02-06
    c++两个矩阵相乘 C++矩阵相乘 c++矩阵运算
  • Python实现两种稀疏矩阵的最小二乘法
    目录最小二乘法返回值测试最小二乘法 scipy.sparse.linalg实现了两种稀疏矩阵最小二乘法lsqr和lsmr,前者是经典算法,后者来自斯坦福优化实验室,据称可以比lsqr...
    99+
    2023-02-26
    Python稀疏矩阵最小二乘法 Python稀疏矩阵 Python 最小二乘法
  • 动态规划之矩阵连乘问题Python实现方法
    本文实例讲述了动态规划之矩阵连乘问题Python实现方法。分享给大家供大家参考,具体如下: 给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2 ,…,n-1。如何确定计算矩阵连乘积...
    99+
    2022-06-04
    矩阵 方法 动态
  • C++使用cuBLAS加速矩阵乘法运算的实现代码
    本博客主要参考cuBLAS 库 词条实现,与原文不同的是,本博客: 将cuBLAS库的乘法运算进行了封装,方便了算法调用; 将原文的结果转置实现为了不转置,这样可以...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作