函数作用
计算两个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()函数解读相关推荐

  1. #torch.bmm()函数解读

    计算两个tensor的矩阵乘法,torch.bmm(a,b),tensor a 的size为(b,h,w),tensor b的size为(b,w,h),注意两个tensor的维度必须为3.

  2. 关于torch.bmm()函数计算过程

    很多框架中提供的矩阵乘法都是出于简化计算的考虑,很多情况下在进行计算时候都会牵扯到 batch size 这一个维度,这就使得很多矩阵的计算是三维的,Pytorch中的bmm()函数就可以很方便的实现 ...

  3. torch.bmm 函数

    torch.bmm 函数 这里只是记录一下,为了以后个人方便查找. 具体参考:pytorch官方文档 torch.bmm(input, mat2, *, deterministic=False, ou ...

  4. torch.bmm()函数的使用

    torch.bmm()的使用: a=torch.Tensor([[[3,4],[1,2]],[[3,4],[1,2]],[[3,4],[1,2]]]) b=torch.Tensor([[[1,2],[ ...

  5. pytorch 之 torch.bmm()函数

    这是一个计算两个tensor之间乘积的函数,该函数要求两个tensor必须都是三维的,且对两个tensor维度有限制,要求啊a,b两个tensor有如下格式: a:(z,x,y) b:(z,y,c) ...

  6. torch.bmm() 与 torch.matmul()==>张量的相乘运算

    torch.bmm()强制规定维度和大小相同 torch.matmul()没有强制规定维度和大小,可以用利用广播机制进行不同维度的相乘操作 当进行操作的两个tensor都是3D时,两者等同. torc ...

  7. torch.bmm() 与 torch.matmul()

    torch.bmm() torch.matmul() torch.bmm()强制规定维度和大小相同 torch.matmul()没有强制规定维度和大小,可以用利用广播机制进行不同维度的相乘操作 当进行 ...

  8. pytoch矩阵乘法torch.bmm

    torch.bmm函数可实现矩阵乘法.pytorch官方文档地址:torch.bmm - PyTorch 1.10.1 documentationhttps://pytorch.org/docs/st ...

  9. torch.bmm()和torch.matmul()函数的用法和区别,矩阵相乘

    torch.bmm()和torch.matmul()都是矩阵乘法的运算函数,区别是,torch.matmul更强大. 两者都可以支持3维的矩阵运算,实际是第一维只是找下标,后面2维才是矩阵,然后对应做 ...

最新文章

  1. 马上 2018 年了,该不该下定决心转型AI呢?
  2. Android Doze模式源码分析
  3. BUUCTF(pwn)inndy_echo(32位格式化字符串修改got表)
  4. Learning Python 009 dict(字典)和 set
  5. java 定时器 的中断程序,STM32定时器中断
  6. 数字心电图仪综合系统设计与实现verilog
  7. IntelliJ IDEA 2019 安装lombok
  8. Vue3动态组件、缓存组件、分发组件
  9. paip.css的覆盖
  10. 流水灯c语言代码switch,51单片机流水灯代码,四种方式,开关启动
  11. 用Anaconda下载tensorflow(windows)小白教程
  12. 过7游戏c语言,C语言实现扫雷小游戏
  13. 某宝双十一自动养猫,解放你的双手得喵币
  14. 我们怎样制作照片拼图?简单实用的拼图方法来了
  15. c++逆天改命进阶--多态
  16. SpringCache-redis缓存学习记录
  17. 高性能计算服务器8280,AMD秀实力:第二代霄龙64核性能是英特尔Xeon Platinum8280两倍...
  18. 智能物流系统领域国内外的发展状况及趋
  19. 中国式家长计算机科学家攻略,中国式家长特长图鉴一览表 Q版图表讲解各特长发展路线...
  20. IA-32汇编语言笔记(2)—— IA32处理器及其寄存器

热门文章

  1. 关于“运放“这些知识点
  2. 2022全新好玩的恶搞屁声音小程序源码+UI不错
  3. PPT文字很多的排版,PPT图片很多的排版,PPT图文排版
  4. eclipse的安装与下载
  5. Mac终端解压缩命令大全
  6. matlab测量正六边形边长,计算边长已知的正六边形面积的方法
  7. 人工智能新目标——看懂视频
  8. 实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)
  9. 关于三方协议不得不说的注意事项
  10. delphi 注册列表的学习