pytorch矩阵乘法总结
文章目录
- 点乘 `torch.mul(a,b)`
- 二维矩阵乘 `torch.mm(a,b)`
- 三维矩阵乘 `torch.bmm(`a,b)
- 高维矩阵乘 `torch.matmul(a,b)`
点乘 torch.mul(a,b)
点乘是对应位置元素相乘
点乘都是broadcast的,可以用torch.mul(a, b)实现,也可以直接用*实现。
python中的广播机制(broadcasting)
broadcasting可以这样理解:如果你有一个(m,n)的矩阵,让它加减乘除一个(1,n)的矩阵,它会被复制m次,成为一个(m,n)的矩阵,然后再逐元素地进行加减乘除操作。同样地对(m,1)的矩阵成立
图源:https://www.jianshu.com/p/fadd169cd396
- 当a, b维度满足广播机制时,会自动填充到相同维度相点乘。
例如:a的维度为(2,3),b的维度为(1,3);
或者:a的维度为(2,3),b的维度为(2,1)。 - 当a, b维度不满足广播机制时,要求a和b的维度必须相等。
a的维度为(1,2),b的维度为(2,3)就会报错:The size of tensor a (2) must match the size of tensor b (3) at non-singleton dimension 1
报错的意思是b中维度为3的位置必须和a中维度为2的位置相匹配,因为a中有个维度1,要想满足广播机制就必须是(1,2)和(2,2),否则就需要满足维度必须相等(2,3)和(2,3)
二维矩阵乘 torch.mm(a,b)
torch.mm(mat1, mat2, out=None)
二维矩阵乘法要求a、b两个参数的维度要满足乘法要求。
该函数一般只用来计算两个二维矩阵的矩阵乘法,并且不支持broadcast操作。
三维矩阵乘 torch.bmm(
a,b)
由于神经网络训练一般采用mini-batch,经常输入的时三维带batch的矩阵,所以提供
torch.bmm(bmat1, bmat2, out=None)
该函数的两个输入必须是三维矩阵并且第一维相同(表示Batch维度), 后两维符合矩阵乘法要求。不支持broadcast操作
高维矩阵乘 torch.matmul(a,b)
torch.matmul(input, other, out=None)
高维矩阵的最后两维满足矩阵乘法要求,前面维数认为是batch_size, 使用广播机制。
主要参考资料:
pytorch之torch中的几种乘法
pytorch 中矩阵乘法总结
pytorch矩阵乘法总结相关推荐
- [PyTorch] 矩阵乘法
参考 『PyTorch』矩阵乘法总结 1. * 两个张量在对应的位置上进行数值相乘. x = torch.randn(2, 2) y = x * x 2. torch.mm() 二维矩阵乘法 x = ...
- pytorch矩阵乘法mm,bmm
文章目录 矩阵维度 矩阵乘法 torch.mm torch.bmm torch.matmul 矩阵维度 首先需要确认多维矩阵每个维度的对应含义. a = torch.tensor([[[3.], [1 ...
- Pytorch矩阵乘法之torch.mul() 、 torch.mm() 及torch.matmul()的区别
torch.mul() . torch.mm() 及torch.matmul()的区别 一.简介 torch.mul(a, b) 是矩阵a和b对应位相乘,a和b的维度必须相等,比如a的维度是(1, 2 ...
- pytorch 内积 矩阵乘法
1维张量内积-torch.dot() 内积返回的是一个值,如果都归一化了,可以看做相似度. torch.dot(input, tensor) → Tensor #计算两个张量的点积(内积) #官方提示 ...
- Pytorch:矩阵乘法总结
1.矩阵相乘 (1)二维矩阵乘法:torch.mm(mat1, mat2, out=None) → Tensor 该函数一般只用来计算两个二维矩阵的矩阵乘法,并且不支持broadcast操作. 代码例 ...
- pytorch 矩阵和向量乘法
向量 点乘:又叫做点积.内积.数量积.标量积,向量a[a1,a2,...,an]和向量b[b1,b2b...,bn]点乘的结果是一个标量,记作a.b: 得到一个值. 叉乘:又叫向量积.外积.叉积,叉乘 ...
- numpy 矩阵乘法_一起学习Python常用模块——numpy
关注微信公众号:一个数据人的自留地 作者介绍 知乎@王多鱼 百度的一名推荐算法攻城狮. 主要负责商品推荐的召回和排序模型的优化工作. 1 前言 Python在数据科学.机器学习.AI领等域中占据主导地 ...
- 矩阵乘法,矩阵中各元素对应相乘及其梯度计算;
矩阵乘法:x=([x1,x2]) w=([w1,w2],[w3,w4]) torch.matmul(x,w)=([x1w1+x2w3,x1w2+x2+w4]) x.grad=(w1+w2,w3+w4) ...
- pytoch矩阵乘法torch.bmm
torch.bmm函数可实现矩阵乘法.pytorch官方文档地址:torch.bmm - PyTorch 1.10.1 documentationhttps://pytorch.org/docs/st ...
最新文章
- html转换pdf 分页,(html2canvas jspdf)html转pdf带分页
- 下面哪个字段是http请求中必须具备的_HTTP协议及其工作原理介绍
- Python自然语言处理学习笔记(66):7.7 小结
- WindowsPhone设置启动欢迎页面
- 字符串数组 和 字符串指针 的区别
- SSClone非ARP会话劫持原理分析
- 迭代器(Iterator)遍历的两种方法(for和while)
- 使用Spring Security添加RememberMe身份验证
- JavaScript代码优化实战之一:缓存变量,关键字过滤
- 在Ubuntu 18.04系统上安装和配置DBeaver的步骤
- 【万字长文】创业公司就应该技术选型 Spring Cloud Alibaba , 开箱即用
- JavaScript异步编程【中】 -- Promise 详细解析
- 如何在自己的程序里执行/终止一个外部程序?
- python支持向量机回归_支持向量机——核函数与支持向量回归(附Python代码)
- xshell上传本地文件命令_linux redhat怎么用xshell上传本地文件
- linux系统日志message 分析,Linux系统日志及日志分析
- java sdk qq登录授权,springboot开发qq第三方授权登录(示例代码)
- 老徐和阿珍的故事:ArrayList和LinkedList的效率到底哪个高?
- Pygame库200行代码实现简易飞机大战的小游戏
- 《软件工程实践》第五次作业-WordCount进阶需求 (结对第二次)