bmm_cn.rst 1.5 KB
Newer Older
1 2
.. _cn_api_paddle_tensor_bmm:

T
tianshuo78520a 已提交
3 4
bmm
-------------------------------
5 6 7

.. py:function:: paddle.tensor.bmm(x, y, name=None):

S
swtkiwi 已提交
8 9 10 11 12
:alias_main: paddle.bmm
:alias: paddle.bmm,paddle.tensor.bmm,paddle.tensor.linalg.bmm



13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
对输入x及输入y进行矩阵相乘。

两个输入的维度必须等于3,并且矩阵x和矩阵y的第一维必须相等

同时矩阵x的第二维必须等于矩阵y的第三维

例如:若x和y分别为(b, m, k)和 (b, k, n)的矩阵,则函数的输出为一个(b, m, n)的矩阵

**参数**:
    
    -**x** (Variable) : 输入变量,类型为 Tensor 或 LoDTensor。
    -**y** (Variable) : 输入变量,类型为 Tensor 或 LoDTensor。
    -**name** (str|None) : 该层名称(可选),如果设置为空,则自动为该层命名。

**返回**:
    - Variable (Tensor / LoDTensor),矩阵相乘后的结果。

**返回类型**:
    - Variable(变量)。


**示例**:

.. code-block:: python
    
    import paddle
    import paddle.fluid as fluid
    # size input1: (2, 2, 3) and input2: (2, 3, 2)
    input1 = np.array([[[1.0, 1.0, 1.0],[2.0, 2.0, 2.0]],[[3.0, 3.0, 3.0],[4.0, 4.0, 4.0]]])
    input2 = np.array([[[1.0, 1.0],[2.0, 2.0],[3.0, 3.0]],[[4.0, 4.0],[5.0, 5.0],[6.0, 6.0]]])
    with fluid.dygraph.guard():
        x = fluid.dygraph.to_variable(input1)
        y = fluid.dygraph.to_variable(input2)
        out = paddle.bmm(x, y)
        #output size: (2, 2, 2)
        #output value:
        #[[[6.0, 6.0],[12.0, 12.0]],[[45.0, 45.0],[60.0, 60.0]]]
        out_np = out.numpy()