torch.bmm()验证
官网的说明
torch.bmm(input, mat2, out=None) → Tensor
bmm的输入必须是3维的。其他维度会出错:
import torch
a = torch.Tensor(4,2,2,3)
b = torch.Tensor(4,2,3,5)
c = torch.bmm(a,b)Traceback (most recent call last):File "/Users/XXX/Desktop/MyCode/xxx.py", line 1436, in <module>c = torch.bmm(a,b)
RuntimeError: Expected 3-dimensional tensor, but got 4-dimensional tensor for argument #1 'batch1' (while checking arguments for bmm)
下面我们演示一下bmm的使用:
import torcha = torch.stack( [torch.ones(3,4)*torch.tensor(i+1) for i in range(5)], dim=0)
b = a.transpose(1,2)
#a.shape: (5,3,4)
#b.shape: (5,4,3)c = torch.bmm(a,b)
#c.shape: (5,3,3)
print(c)tensor([[[ 4., 4., 4.],[ 4., 4., 4.],[ 4., 4., 4.]],[[ 16., 16., 16.],[ 16., 16., 16.],[ 16., 16., 16.]],[[ 36., 36., 36.],[ 36., 36., 36.],[ 36., 36., 36.]],[[ 64., 64., 64.],[ 64., 64., 64.],[ 64., 64., 64.]],[[100., 100., 100.],[100., 100., 100.],[100., 100., 100.]]])
代码中我们设置了5个3*4 的tensor stack在一起,其转置相应的是 4*3。
我们的a中的每个都是一个全1到全5的矩阵。我们知道:
I∈Rm∗nI \in R^{m*n}I∈Rm∗n,
I∗IT=n∗I′,I′∈Rm∗mI*I^{T}=n*I',I'\in R^{m*m}I∗IT=n∗I′,I′∈Rm∗m ,
aI∗aIT=n∗a2∗I′aI*aI^T=n*a^2*I'aI∗aIT=n∗a2∗I′
上述的结果正好是a=1,2,3,4,5a=1,2,3,4,5a=1,2,3,4,5的情况,因此,bmm的作用是batch号相同的两个矩阵之间的矩阵乘,不同batch号之间的矩阵无关联!
torch.bmm()验证相关推荐
- 关于torch.bmm()函数计算过程
很多框架中提供的矩阵乘法都是出于简化计算的考虑,很多情况下在进行计算时候都会牵扯到 batch size 这一个维度,这就使得很多矩阵的计算是三维的,Pytorch中的bmm()函数就可以很方便的实现 ...
- 【pytorch】torch.mm,torch.bmm以及torch.matmul的使用
torch.mm torch.mm是两个矩阵相乘,即两个二维的张量相乘 如下面的例子 mat1 = torch.randn(2,3) print("mat1=", mat1)mat ...
- 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 ...
- Pytorch教程之torch.mm、torch.bmm、torch.matmul、masked_fill
文章目录 1.简介 2.torch.mm 3.torch.bmm 4.torch.matmul 5.masked_fill 1.简介 这几天正在看NLP中的注意力机制,代码中涉及到了一些关于张量矩阵乘 ...
- torch.bmm()
文章目录 函数介绍 例子 函数介绍 torch.bmm(input, mat2, *, out=None) → Tensor 输入: input (Tensor) – the first batch ...
- torch.bmm()函数解读
函数作用 计算两个tensor的矩阵乘法,torch.bmm(a,b),tensor a 的size为(b,h,w),tensor b的size为(b,w,m) 也就是说两个tensor的第一维是相等 ...
- 【Pytorch】torch. bmm()
目录 简介 torch.bmm() 语法 作用 举例 参考 结语 简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C+ ...
最新文章
- ZH奶酪:Java调用NLPIR汉语分词系统
- OVS DPDK--介绍(一)
- openresty获取Nginx uri中的单一变量
- php怎么样sphinx,php使用sphinx
- 【js】vue 2.5.1 源码学习(二) 策略合并
- 适用于VS C++环境的注释代码段,可以让你的代码被使用时有高可读性的注释
- Nginx应用场景之动静分离
- 对VLAN间路由实验的总结
- 使用Flash Builder 4.5进行多平台游戏开发
- 关于SVN更新时文件加锁的小结
- mac安装adb工具
- python unpack函数_python的struct.unpack函数
- 安装mysql时一直卡在starting the server这一位置,解决办法
- 开源PHP微信通用sdk,支持微信支付及所有基础接口(强烈推荐)
- HEVC-帧内预测2: initAdiPattern 函数
- 年仅28岁的程序员宣布从字节跳动退休,他是如何实现财务自由的?
- 微信服务器在哪里修改密码,微信修改密码在哪里 微信在哪里改密码
- C++基础入门丨1. 初识C++像极了C语言
- python实现Apriori算法
- hpuoj 1210: OY问题 [搜索]