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

T
tianshuo78520a 已提交
3 4
cross
-------------------------------
5

6
.. py:function:: paddle.cross(x, y, axis=None, name=None)
7

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



13 14
计算张量 ``x`` 和 ``y`` 在 ``axis`` 维度上的向量积(叉积)。 ``x`` 和 ``y`` 必须有相同的形状,
且指定的 ``axis`` 的长度必须为3. 如果未指定 ``axis`` ,默认选取第一个长度为3的 ``axis`` .
15 16
        
**参数**:
17 18 19 20 21 22 23 24
    - **x** (Variable)– 第一个输入张量。
    - **y** (Variable)– 第二个输入张量。
    - **axis**  (int, optional) – 沿着此维进行向量积操作。默认选取第一个长度为3的 ``axis`` .
    - **name** (str,可选)- 输出的名字。默认值为None。该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name` 。

**返回**:向量积的结果。

**返回类型**:Variable
25 26 27 28 29 30

**代码示例**:

.. code-block:: python

        import paddle
31
        from paddle.imperative import to_variable
32 33
        import numpy as np

34 35
        paddle.enable_imperative()
        
36 37 38 39 40 41
        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]])
42 43 44 45 46 47 48 49 50 51 52 53 54 55
        x = to_variable(data_x)
        y = to_variable(data_y)

        z1 = paddle.cross(x, y)
        print(z1.numpy())
        # [[-1. -1. -1.]
        #  [ 2.  2.  2.]
        #  [-1. -1. -1.]]

        z2 = paddle.cross(x, y, axis=1)
        print(z2.numpy())
        # [[0. 0. 0.]
        #  [0. 0. 0.]
        #  [0. 0. 0.]]
56 57