.. _cn_api_paddle_tensor_eye:

eye
-------------------------------

.. py:function:: paddle.tensor.eye(num_rows, num_columns=None, dtype=None, name=None)

该OP用来构建二维Tensor(主对角线元素为1，其他元素为0)。

参数：
    - **num_rows** (int) - 生成二维Tensor的行数，数据类型为非负int32。
    - **num_columns** (int，可选) - 生成二维Tensor的列数，数据类型为非负int32。若为None，则默认等于num_rows。
    - **dtype** (np.dtype|core.VarDesc.VarType|str， 可选) - 返回Tensor的数据类型，可为float16，float32，float64， int32， int64。若为None, 则默认等于float32。
    - **name** （str， 可选）- 具体用法请参见 :ref:`api_guide_Name` ，一般无需设置，默认值为None。

返回： ``shape`` 为 [num_rows, num_columns]的Tensor。


抛出异常：
    - ``TypeError``: - 如果 ``dtype`` 的类型不是float16， float32， float64， int32， int64其中之一。
    - ``TypeError``: - 如果 ``num_columns`` 不是非负整数或者 ``num_rows`` 不是非负整数。

**代码示例**：

.. code-block:: python

    import paddle
    paddle.enable_imperative()  # Now we are in imperative mode
    data = paddle.eye(3, dtype='int32')
    # [[1 0 0]
    #  [0 1 0]
    #  [0 0 1]]
    data = paddle.eye(2, 3, dtype='int32')
    # [[1 0 0]
    #  [0 1 0]]




