cross_cn.rst 1.6 KB
Newer Older
1 2
.. _cn_api_tensor_linalg_cross:

T
tianshuo78520a 已提交
3 4
cross
-------------------------------
5 6 7 8 9 10 11 12 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

.. py:function:: paddle.cross(input, other, dim=None)

该OP返回在 ``dim`` 维度上,两个张量 ``input`` 和 ``other`` 的向量积(叉积)。 ``input`` 和 ``other`` 必须有相同的形状,
且指定的 ``dim`` 维上 ``size`` 必须为3,如果 ``dim`` 未指定,默认选取第一个 ``size`` 等于3的维度。
        
**参数**:
    - **input** (Variable)– 第一个输入张量。
    - **other** (Variable)– 第二个输入张量。
    - **dim**    (int, optional) – 沿着此维进行叉积操作,若未指定,则默认选取第一个 ``size`` 等于3的维度

**返回**:
    - **Variable** ,数据类型同输入。
     
**代码示例**:

.. code-block:: python

        import paddle
        import paddle.fluid as fluid
        import numpy as np

        data_x = np.array([[1.0, 1.0, 1.0],
                           [2.0, 2.0, 2.0],
                           [3.0, 3.0, 3.0]])
        data_y = np.array([[1.0, 1.0, 1.0],
                           [1.0, 1.0, 1.0],
                           [1.0, 1.0, 1.0]])

        with fluid.dygraph.guard():
            x = fluid.dygraph.to_variable(data_x)
            y = fluid.dygraph.to_variable(data_y)
            out_z1 = paddle.cross(x, y)
            print(out_z1.numpy())
            #[[-1. -1. -1.]
            # [ 2.  2.  2.]
            # [-1. -1. -1.]]
            out_z2 = paddle.cross(x, y, dim=1)
            print(out_z2.numpy())
            #[[0. 0. 0.]
            # [0. 0. 0.]
            # [0. 0. 0.]]