torch.addbmm() 解析

目录

(1)中文说明

(2):1输入输出测试:

beta参数改变一下看看结果

alpha参数改变一下看看结果


先看看(1)函数的中文说明: >>然后 有(2)解析运算说明图解

  1. (1)函数说明

torch.addbmm
torch.addbmm(beta=1, mat, alpha=1, batch1, batch2, out=None) → Tensor
对两个批 batch1 和 batch2 内存储的矩阵进行批矩阵乘操作,附带 reduced add 步骤( 所有矩阵
乘结果沿着第一维相加)。矩阵 mat 加到最终结果。 batch1 和 batch2 都为包含相同数量矩阵的 3
维张量。 如果 batch1 是形为 b×n×m 的张量, batch1 是形为 b×m×p 的张量,则 out 和 mat 的形状
都是 n×p,即 res=(beta∗M)+(alpha∗sum(batch1i@batch2i,i=0,b))
对类型为 FloatTensor 或 DoubleTensor 的输入, alphaand beta 必须为实数,否则两个参数须为
整数。
参数:
 beta (Number, optional) – 用于 mat 的乘子
 mat (Tensor) – 相加矩阵
 alpha (Number, optional) – 用于 batch1@batch2batch1@batch2 的乘子
 batch1 (Tensor) – 第一批相乘矩阵
 batch2 (Tensor) – 第二批相乘矩阵
 out (Tensor, optional) – 输出张量
例子:
>>> M = torch.randn(3, 5)
>>> batch1 = torch.randn(10, 3, 4)
>>> batch2 = torch.randn(10, 4, 5)
>>> torch.addbmm(M, batch1, batch2)
-3.1162 11.0071 7.3102 0.1824 -7.6892
1.8265 6.0739 0.4589 -0.5641 -5.4283
-9.3387 -0.1794 -1.2318 -6.8841 -4.7239
[torch.FloatTensor of size 3x5]

以上为找到的中文文档的内容 下面进行 输入输出的计算模拟 

  1. (2):1输入输出测试:

m 3*3

h1 3*3*3

h1 3*3*3

beta=1

alpha=1

In [17]: m 
Out[17]:
tensor([[0.5000, 0.5000, 0.5000],
        [0.5000, 0.5000, 0.5000],
        [0.5000, 0.5000, 0.5000]])

In [18]: h1
Out[18]:
tensor([[[1., 1., 1.],
         [1., 1., 1.],
         [1., 1., 1.]],

        [[1., 1., 1.],
         [1., 1., 1.],
         [1., 1., 1.]],

        [[1., 1., 1.],
         [1., 1., 1.],
         [1., 1., 1.]]])

In [19]: h2
Out[19]:
tensor([[[1., 1., 1.],
         [1., 1., 1.],
         [1., 1., 1.]],

        [[1., 1., 1.],
         [1., 1., 1.],
         [1., 1., 1.]],

        [[1., 1., 1.],
         [1., 1., 1.],
         [1., 1., 1.]]])

In [20]: torch.addbmm(m,h1,h2)
Out[20]:
tensor([[9.5000, 9.5000, 9.5000],
        [9.5000, 9.5000, 9.5000],
        [9.5000, 9.5000, 9.5000]])

torch.addbmm(beta=2, mat=m, alpha=1, batch1=h1, batch2=h2 )

 

beta参数改变一下看看结果

beta=2

In [27]: torch.addbmm(2,m,1,h1,h2 )
Out[27]:
tensor([[10., 10., 10.],
        [10., 10., 10.],
        [10., 10., 10.]])

运算结果 模拟:

 

alpha参数改变一下看看结果

alpha=1

In [28]: torch.addbmm(1,m,2,h1,h2 )
Out[28]:
tensor([[18.5000, 18.5000, 18.5000],
        [18.5000, 18.5000, 18.5000],
        [18.5000, 18.5000, 18.5000]])

运算结果模拟:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值