torch
.
addbmm(beta
=1
, mat, alpha
=1
, batch1, batch2, out
=
None
)
-->
Tensor:对两个批batch1和batch2内存储的矩阵进行批矩阵乘操作,附带reduced add步骤(所有矩阵乘结果沿着第一维相加)。矩阵mat加到最终结果。batch1和batch2都为包含相同数量矩阵的3维张量。如果batch1是形为bxnxm的张量,batch1是形为bxmxp的张量,则out和mat的形状都是nxp,即res=(
beta
·
M) +(
al pha
·
sum
(
batch
1
i
@
batch
2
i
,
i
=
0
,b))对类型为FloatTensor或DoubleTensor的输入,alpha,beat必须为实数,否则两个参数须为整数。
参数:
--beta (Number, optional)
:用于
mat
的乘子
--at (Tensor)
:相加矩阵
--alpha (Number, optional)
:用于
batch1@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]
torch
.
addmm(beta
=1
, mat, alpha
=1
, mat1, mat2, out
=
None
)
-->
Tensor:对矩阵mat1和mat2进行矩阵乘操作。矩阵mat加到最终结果。如果mat1是一个nxm张量,mat2是一个mxp张量,那么out和mat的形状nxp。alpha和beta分别是两个矩阵mat
1@
mat
2
和 mat的比例因子,即,
out
= (
beta
·
M
)+ (
al pha
·
mat
1@
mat
2)对类型为FloatTensor 或 DoubleTensor的输入,betaand alpha必须为实数,否则两个参数必须为整数。
参数:
--
beta (Number, optional)
:用于
mat
的乘子
--mat (Tensor)
:相加矩阵
--alpha (Number, optional)
:用于
mat1@mat2
的乘子
--mat1 (Tensor):第一个相乘矩阵
--
mat2 (Tensor)
:第二个相乘矩阵
--out (Tensor, optional)
:输出张量
例子:
>>> M = torch.randn(2, 3)
>>> mat1 = torch.randn(2, 3)
>>> mat2 = torch.randn(3, 3)
>>> torch.addmm(M, mat1, mat2)
-0.4095 -1.9703 1.3561
5.7674 -4.9760 2.7378
[torch.FloatTensor of size 2x3]
torch
.
addmv(beta
=1
, tensor, alpha
=1
, mat, vec, out
=
None
)
-->
Tensor :对矩阵
mat
和向量
vec 对进行相乘操作。向量
tensor 加到最终结果。如果
mat 是一个n
×
m 维矩阵,vec
是一个
m
维向量,那么
out
和
mat
的为
n 元向量。。可选参数 _alpha_
和
beta
分别是
mat
∗
vec
和
mat 的比例因子即,out
= (
beta
·
tensor
)+(
al pha
·
(
mat
@
vec))对类型为
_FloatTensor_
或
_DoubleTensor_
的输入,
alphaand beta
必须为实数,否则两个参数必须为整数。
参数:
--beta (Number, optional)
:用于
mat
的乘子
--
mat (Tensor)
:相加矩阵
--alpha (Number, optional):用于
mat1@
vec 的乘子
--
mat (Tensor)
:相乘矩阵
--
vec (Tensor)
:相乘向量
--out (Tensor, optional)
:输出张量
例子:
>>> M = torch.randn(2)
>>> mat = torch.randn(2, 3)
>>> vec = torch.randn(3)
>>> torch.addmv(M, mat, vec)
-2.0939
-2.2950
[torch.FloatTensor of size 2]
torch
.
addr(beta
=1
, mat, alpha
=1
, vec1, vec2, out
=
None
)
-->
Tensor :对向量
vec
1
和
vec
2 对进行张量积操作。矩阵 mat 加到最终结果。如果
vec1 是一个 n维向量,
vec2 是一个 m 维向量,
那么矩阵
mat
的形状须为
n
×m。可选参数 _beta_ 和alpha 分别是两个矩阵
mat 和
vec1@
vec2 的比例因子,即,
,
resi
= (
beta
∗
Mi
)+ (
al pha∗ batch
1
ibatch
2
i)对类型为
_FloatTensor_
或
_DoubleTensor_ 的输入,alphaand beta 必须为实数,否
则两个参数须为整数。
参数:
--
beta (Number, optional)
:用于
mat
的乘子
--mat (Tensor)
:相加矩阵
--alpha (Number, optional)
:用于两向量
vec1
,
vec2
外积的乘子
--vec1 (Tensor)
:第一个相乘向量
--vec2 (Tensor)
:第二个相乘向量
--out (Tensor, optional)
:输出张量
例子:
>>> vec1 = torch.arange(1, 4)
>>> vec2 = torch.arange(1, 3)
>>> M = torch.zeros(3, 2)
>>> torch.addr(M, vec1, vec2)
1 2
2 4
3 6
[torch.FloatTensor of size 3x2]