torch.bmm()函数解读
函数作用
计算两个tensor的矩阵乘法,torch.bmm(a,b),tensor a 的size为(b,h,w),tensor b的size为(b,w,m) 也就是说两个tensor的第一维是相等的,然后第一个数组的第三维和第二个数组的第二维度要求一样,对于剩下的则不做要求,输出维度 (b,h,m)
代码示例
>>> c=torch.randn((2,5))
>>> print(c)
tensor([[ 1.0559, -0.3533, 0.5194, 0.9526, -0.2483],[-0.1293, 0.4809, -0.5268, -0.3673, 0.0666]])
>>> d=torch.reshape(c,(5,2))
>>> print(d)
tensor([[ 1.0559, -0.3533],[ 0.5194, 0.9526],[-0.2483, -0.1293],[ 0.4809, -0.5268],[-0.3673, 0.0666]])
>>> e=torch.bmm(c,d)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
RuntimeError: Dimension out of range (expected to be in range of [-2, 1], but got 2)
当tensor维度为2时会报错!
>>> ccc=torch.randn((1,2,2,5))
>>> ddd=torch.randn((1,2,5,2))
>>> e=torch.bmm(ccc,ddd)
Traceback (most recent call last):File "<stdin>", line 1, in <module>
RuntimeError: invalid argument 1: expected 3D tensor, got 4D at /opt/conda/conda-bld/pytorch_1535490206202/work/aten/src/TH/generic/THTensorMath.cpp:2304
维度为4时也会报错!
>>> cc=torch.randn((2,2,5))
>>>print(cc)
tensor([[[ 1.4873, -0.7482, -0.6734, -0.9682, 1.2869],[ 0.0550, -0.4461, -0.1102, -0.0797, -0.8349]],[[-0.6872, 1.1920, -0.9732, 0.4580, 0.7901],[ 0.3035, 0.2022, 0.8815, 0.9982, -1.1892]]])
>>>dd=torch.reshape(cc,(2,5,2))
>>> print(dd)
tensor([[[ 1.4873, -0.7482],[-0.6734, -0.9682],[ 1.2869, 0.0550],[-0.4461, -0.1102],[-0.0797, -0.8349]],[[-0.6872, 1.1920],[-0.9732, 0.4580],[ 0.7901, 0.3035],[ 0.2022, 0.8815],[ 0.9982, -1.1892]]])
>>>e=torch.bmm(cc,dd)
>>> print(e)
tensor([[[ 2.1787, -1.3931],[ 0.3425, 1.0906]],[[-0.5754, -1.1045],[-0.6941, 3.0161]]])>>> e.size()
torch.Size([2, 2, 2])
正确!
torch.bmm()函数解读相关推荐
- #torch.bmm()函数解读
计算两个tensor的矩阵乘法,torch.bmm(a,b),tensor a 的size为(b,h,w),tensor b的size为(b,w,h),注意两个tensor的维度必须为3.
- 关于torch.bmm()函数计算过程
很多框架中提供的矩阵乘法都是出于简化计算的考虑,很多情况下在进行计算时候都会牵扯到 batch size 这一个维度,这就使得很多矩阵的计算是三维的,Pytorch中的bmm()函数就可以很方便的实现 ...
- torch.bmm 函数
torch.bmm 函数 这里只是记录一下,为了以后个人方便查找. 具体参考:pytorch官方文档 torch.bmm(input, mat2, *, deterministic=False, ou ...
- torch.bmm()函数的使用
torch.bmm()的使用: a=torch.Tensor([[[3,4],[1,2]],[[3,4],[1,2]],[[3,4],[1,2]]]) b=torch.Tensor([[[1,2],[ ...
- pytorch 之 torch.bmm()函数
这是一个计算两个tensor之间乘积的函数,该函数要求两个tensor必须都是三维的,且对两个tensor维度有限制,要求啊a,b两个tensor有如下格式: a:(z,x,y) b:(z,y,c) ...
- torch.bmm() 与 torch.matmul()==>张量的相乘运算
torch.bmm()强制规定维度和大小相同 torch.matmul()没有强制规定维度和大小,可以用利用广播机制进行不同维度的相乘操作 当进行操作的两个tensor都是3D时,两者等同. torc ...
- torch.bmm() 与 torch.matmul()
torch.bmm() torch.matmul() torch.bmm()强制规定维度和大小相同 torch.matmul()没有强制规定维度和大小,可以用利用广播机制进行不同维度的相乘操作 当进行 ...
- pytoch矩阵乘法torch.bmm
torch.bmm函数可实现矩阵乘法.pytorch官方文档地址:torch.bmm - PyTorch 1.10.1 documentationhttps://pytorch.org/docs/st ...
- torch.bmm()和torch.matmul()函数的用法和区别,矩阵相乘
torch.bmm()和torch.matmul()都是矩阵乘法的运算函数,区别是,torch.matmul更强大. 两者都可以支持3维的矩阵运算,实际是第一维只是找下标,后面2维才是矩阵,然后对应做 ...
最新文章
- 马上 2018 年了,该不该下定决心转型AI呢?
- Android Doze模式源码分析
- BUUCTF(pwn)inndy_echo(32位格式化字符串修改got表)
- Learning Python 009 dict(字典)和 set
- java 定时器 的中断程序,STM32定时器中断
- 数字心电图仪综合系统设计与实现verilog
- IntelliJ IDEA 2019 安装lombok
- Vue3动态组件、缓存组件、分发组件
- paip.css的覆盖
- 流水灯c语言代码switch,51单片机流水灯代码,四种方式,开关启动
- 用Anaconda下载tensorflow(windows)小白教程
- 过7游戏c语言,C语言实现扫雷小游戏
- 某宝双十一自动养猫,解放你的双手得喵币
- 我们怎样制作照片拼图?简单实用的拼图方法来了
- c++逆天改命进阶--多态
- SpringCache-redis缓存学习记录
- 高性能计算服务器8280,AMD秀实力:第二代霄龙64核性能是英特尔Xeon Platinum8280两倍...
- 智能物流系统领域国内外的发展状况及趋
- 中国式家长计算机科学家攻略,中国式家长特长图鉴一览表 Q版图表讲解各特长发展路线...
- IA-32汇编语言笔记(2)—— IA32处理器及其寄存器
热门文章
- 关于“运放“这些知识点
- 2022全新好玩的恶搞屁声音小程序源码+UI不错
- PPT文字很多的排版,PPT图片很多的排版,PPT图文排版
- eclipse的安装与下载
- Mac终端解压缩命令大全
- matlab测量正六边形边长,计算边长已知的正六边形面积的方法
- 人工智能新目标——看懂视频
- 实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)
- 关于三方协议不得不说的注意事项
- delphi 注册列表的学习