Skip to content

Commit

Permalink
Add sparse api chinese doc (#5362)
Browse files Browse the repository at this point in the history
* Add many sparse api chinese doc

* fix comment
  • Loading branch information
zhwesky2010 authored Oct 18, 2022
1 parent dba0dad commit ff29179
Show file tree
Hide file tree
Showing 41 changed files with 1,023 additions and 46 deletions.
2 changes: 1 addition & 1 deletion docs/api/paddle/deg2rad_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ deg2rad

.. py:function:: paddle.deg2rad(x, name=None)
将元素从弧度的角度转换为度
将元素从度转换为弧度

.. math::
Expand Down
76 changes: 54 additions & 22 deletions docs/api/paddle/incubate/sparse/Overview_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,51 +5,83 @@ paddle.incubate.sparse

paddle.incubate.sparse 目录包含飞桨框架支持稀疏数据存储和计算相关的 API。具体如下:

- :ref:`稀疏数据结构相关 <about_sparse_tensor>`
- :ref:`数学操作 API <about_sparse_math>`
- :ref:`NN 相关 API <about_sparse_nn>`
- :ref:`稀疏 Tensor 创建 <about_sparse_tensor>`
- :ref:`稀疏 Tensor 运算 <about_sparse_math>`
- :ref:`稀疏组网类 <about_sparse_nn>`
- :ref:`稀疏组网类的函数式 API <about_sparse_nn_functional>`

.. _about_sparse_tensor:

稀疏数据结构相关
稀疏 Tensor 创建
::::::::::::::::::::

.. csv-table::
:header: "API 名称", "API 功能"

" :ref:`paddle.incubate.sparse.sparse_coo_tensor <cn_api_paddle_incubate_sparse_coo_tensor>` ", "创建一个 COO 格式的 SparseTensor"
" :ref:`paddle.incubate.sparse.sparse_csr_tensor <cn_api_paddle_incubate_sparse_csr_tensor>` ", "创建一个 CSR 格式的 SparseTensor"
" :ref:`paddle.incubate.sparse.is_same_shape <cn_api_paddle_incubate_sparse_is_same_shape>` ", "判断两个 Tensor 的形状是否相同, 支持 DenseTensor 与 SparseTensor 相互比较"
" :ref:`paddle.incubate.sparse.reshape <cn_api_paddle_incubate_sparse_reshape>` ", "改变一个 SparseTensor 的形状"


.. _about_sparse_math:

数学操作相关
稀疏 Tensor 运算
::::::::::::::::::::

.. csv-table::
:header: "API 名称", "API 功能"

" :ref:`paddle.incubate.sparse.abs` ", "绝对值函数"
" :ref:`paddle.incubate.sparse.add` ", "Sparse Tensor 逐元素相加"
" :ref:`paddle.incubate.sparse.asin` ", "arcsine 函数"
" :ref:`paddle.incubate.sparse.asinh` ", "反双曲正弦函数"
" :ref:`paddle.incubate.sparse.atan` ", "反双曲正切函数"
" :ref:`paddle.incubate.sparse.add <cn_api_paddle_incubate_sparse_add>` ", "逐元素加法"
" :ref:`paddle.incubate.sparse.subtract <cn_api_paddle_incubate_sparse_subtract>` ", "逐元素减法"
" :ref:`paddle.incubate.sparse.multiply <cn_api_paddle_incubate_sparse_multiply>` ", "逐元素乘法"
" :ref:`paddle.incubate.sparse.divide <cn_api_paddle_incubate_sparse_divide>` ", "逐元素除法"

" :ref:`paddle.incubate.sparse.sin <cn_api_paddle_incubate_sparse_sin>` ", "对稀疏 Tensor 逐元素求正弦"
" :ref:`paddle.incubate.sparse.tan <cn_api_paddle_incubate_sparse_tan>` ", "对稀疏 Tensor 逐元素求正切"
" :ref:`paddle.incubate.sparse.asin <cn_api_paddle_incubate_sparse_asin>` ", "对稀疏 Tensor 逐元素求反正弦"
" :ref:`paddle.incubate.sparse.atan <cn_api_paddle_incubate_sparse_atan>` ", "对稀疏 Tensor 逐元素求反正切"
" :ref:`paddle.incubate.sparse.sinh <cn_api_paddle_incubate_sparse_sinh>` ", "对稀疏 Tensor 逐元素求双曲正弦"
" :ref:`paddle.incubate.sparse.tanh <cn_api_paddle_incubate_sparse_tanh>` ", "对稀疏 Tensor 逐元素求双曲正切"
" :ref:`paddle.incubate.sparse.asinh <cn_api_paddle_incubate_sparse_asinh>` ", "对稀疏 Tensor 逐元素求反双曲正弦"
" :ref:`paddle.incubate.sparse.atanh <cn_api_paddle_incubate_sparse_atanh>` ", "对稀疏 Tensor 逐元素求反双曲正切"
" :ref:`paddle.incubate.sparse.sqrt <cn_api_paddle_incubate_sparse_sqrt>` ", "对稀疏 Tensor 逐元素求算数平方根"
" :ref:`paddle.incubate.sparse.square <cn_api_paddle_incubate_sparse_square>` ", "对稀疏 Tensor 逐元素求平方"
" :ref:`paddle.incubate.sparse.log1p <cn_api_paddle_incubate_sparse_log1p>` ", "对稀疏 Tensor 逐元素计算 ln(x+1)"
" :ref:`paddle.incubate.sparse.abs <cn_api_paddle_incubate_sparse_abs>` ", "对稀疏 Tensor 逐元素求绝对值"
" :ref:`paddle.incubate.sparse.pow <cn_api_paddle_incubate_sparse_pow>` ", "对稀疏 Tensor 逐元素计算 x 的 y 次幂"
" :ref:`paddle.incubate.sparse.cast <cn_api_paddle_incubate_sparse_cast>` ", "对稀疏 Tensor 逐元素转换类型"
" :ref:`paddle.incubate.sparse.neg <cn_api_paddle_incubate_sparse_neg>` ", "对稀疏 Tensor 逐元素计算相反数"
" :ref:`paddle.incubate.sparse.deg2rad <cn_api_paddle_incubate_sparse_deg2rad>` ", "对稀疏 Tensor 逐元素从度转换为弧度"
" :ref:`paddle.incubate.sparse.rad2deg <cn_api_paddle_incubate_sparse_rad2deg>` ", "对稀疏 Tensor 逐元素从弧度转换为度"
" :ref:`paddle.incubate.sparse.expm1 <cn_api_paddle_incubate_sparse_expm1>` ", "对稀疏 Tensor 逐元素进行以自然数 e 为底的指数运算并减 1"
" :ref:`paddle.incubate.sparse.mv <cn_api_paddle_incubate_sparse_mv>` ", "稀疏矩阵乘向量,第一个参数为稀疏矩阵,第二个参数为稠密向量"
" :ref:`paddle.incubate.sparse.matmul <cn_api_paddle_incubate_sparse_matmul>` ", "稀疏矩阵乘,第一个参数为稀疏矩阵,第二个参数为稠密矩阵或者稀疏矩阵"
" :ref:`paddle.incubate.sparse.addmm <cn_api_paddle_incubate_sparse_addmm>` ", "稀疏矩阵乘与加法的组合运算"
" :ref:`paddle.incubate.sparse.masked_matmul <cn_api_paddle_incubate_sparse_masked_matmul>` ", "稀疏矩阵乘,第一、二个参数均为稠密矩阵,返回值为稀疏矩阵"
" :ref:`paddle.incubate.sparse.add <cn_api_paddle_incubate_sparse_add>` ", "对稀疏 Tensor 逐元素相加"
" :ref:`paddle.incubate.sparse.subtract <cn_api_paddle_incubate_sparse_subtract>` ", "对稀疏 Tensor 逐元素相减"
" :ref:`paddle.incubate.sparse.multiply <cn_api_paddle_incubate_sparse_multiply>` ", "对稀疏 Tensor 逐元素相乘"
" :ref:`paddle.incubate.sparse.divide <cn_api_paddle_incubate_sparse_divide>` ", "对稀疏 Tensor 逐元素相除"
" :ref:`paddle.incubate.sparse.is_same_shape <cn_api_paddle_incubate_sparse_is_same_shape>` ", "判断两个稀疏 Tensor 或稠密 Tensor 的 shape 是否一致"
" :ref:`paddle.incubate.sparse.reshape <cn_api_paddle_incubate_sparse_reshape>` ", "改变一个 SparseTensor 的形状"

.. _about_sparse_nn:

NN 相关
稀疏组网类
::::::::::::::::::::

.. csv-table::
:header: "API 名称", "API 功能"

" :ref:`paddle.incubate.sparse.nn.ReLU <cn_api_paddle_incubate_sparse_nn_ReLU>` ", "激活层"
" :ref:`paddle.incubate.sparse.nn.ReLU6 <cn_api_paddle_incubate_sparse_nn_ReLU6>` ", "激活层"
" :ref:`paddle.incubate.sparse.nn.LeakyReLU <cn_api_paddle_incubate_sparse_nn_LeakyReLU>` ", "激活层"
" :ref:`paddle.incubate.sparse.nn.Softmax <cn_api_paddle_incubate_sparse_nn_Softmax>` ", "激活层"
" :ref:`paddle.incubate.sparse.nn.Conv3D <cn_api_paddle_incubate_sparse_nn_Conv3D>` ", "三维卷积层"

.. _about_sparse_nn_functional:

稀疏组网类函数式 API
::::::::::::::::::::

.. csv-table::
:header: "API 名称", "API 功能"

" :ref:`paddle.incubate.sparse.nn.Conv3D` ", "三维卷积"
" :ref:`paddle.incubate.sparse.nn.SubmConv3D` ", "三维的 submanifold 卷积"
" :ref:`paddle.incubate.sparse.nn.Relu` ", "激活函数"
" :ref:`paddle.incubate.sparse.nn.functional.relu <cn_api_paddle_incubate_sparse_nn_functional_relu>` ", "激活函数"
" :ref:`paddle.incubate.sparse.nn.functional.relu6 <cn_api_paddle_incubate_sparse_nn_functional_relu6>` ", "激活函数"
" :ref:`paddle.incubate.sparse.nn.functional.leaky_relu <cn_api_paddle_incubate_sparse_nn_functional_leaky_relu>` ", "激活函数"
" :ref:`paddle.incubate.sparse.nn.functional.softmax <cn_api_paddle_incubate_sparse_nn_functional_softmax>` ", "激活函数"
" :ref:`paddle.incubate.sparse.nn.functional.attention <cn_api_paddle_incubate_sparse_nn_functional_attention>` ", "稀疏 attention 函数"
29 changes: 29 additions & 0 deletions docs/api/paddle/incubate/sparse/abs_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
.. _cn_api_paddle_incubate_sparse_abs:

abs
-------------------------------

.. py:function:: paddle.incubate.sparse.abs(x, name=None)
逐元素计算输入 :attr:`x` 的绝对值,要求 输入 :attr:`x` 为 `SparseCooTensor` 或 `SparseCsrTensor` 。

数学公式:

.. math::
out = |x|
参数
:::::::::
- **x** (SparseTensor) - 输入的稀疏 Tensor,可以为 Coo 或 Csr 格式,数据类型为 float32、float64。
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。

返回
:::::::::
多维稀疏 Tensor, 数据类型和稀疏格式与 :attr:`x` 相同 。


代码示例
:::::::::

COPY-FROM: paddle.incubate.sparse.abs
7 changes: 3 additions & 4 deletions docs/api/paddle/incubate/sparse/add_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,17 @@ add
.. py:function:: paddle.incubate.sparse.add(x, y, name=None)
输入 :attr:`x` 与输入 :attr:`y` 逐元素相加,并将各个位置的输出元素保存到返回结果中。

输入 :attr:`x` 与输入 :attr:`y` 必须为相同形状且为相同稀疏压缩格式(同为 `SparseCooTensor` 或同为 `SparseCsrTensor`),如果同为 `SparseCooTensor` 则 `sparse_dim` 也需要相同。

等式为:

.. math::
Out = X + Y
out = x + y
- :math:`X`:多维稀疏 Tensor。
- :math:`Y`:多维稀疏 Tensor。
- :math:`x`:多维稀疏 Tensor。
- :math:`y`:多维稀疏 Tensor。

参数
:::::::::
Expand Down
49 changes: 49 additions & 0 deletions docs/api/paddle/incubate/sparse/addmm_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
.. _cn_api_paddle_incubate_sparse_addmm:

addmm
-------------------------------

.. py:function:: paddle.incubate.sparse.addmm(input, x, y, beta=1.0, alpha=1.0, name=None)
.. note::
该 API 从 `CUDA 11.0` 开始支持。

对输入 :attr:`x` 与输入 :attr:`y` 求稀疏矩阵乘法,并将 `input` 加到计算结果上。

数学公式:

.. math::
out = alpha * x * y + beta * input
输入、输出的格式对应关系如下:

.. note::

input[SparseCsrTensor] + x[SparseCsrTensor] @ y[SparseCsrTensor] -> out[SparseCsrTensor]

input[DenseTensor] + x[SparseCsrTensor] @ y[DenseTensor] -> out[DenseTensor]

input[SparseCooTensor] + x[SparseCooTensor] @ y[SparseCooTensor] -> out[SparseCooTensor]

input[DenseTensor] + x[SparseCooTensor] @ y[DenseTensor] -> out[DenseTensor]

该 API 支持反向传播,`input` 、 `x` 、 `y` 的维度相同且>=2D,不支持自动广播。

参数
:::::::::
- **input** (SparseTensor|DenseTensor) - 输入 Tensor,可以为 Coo 或 Csr 格式 或 DenseTensor。数据类型为 float32、float64。
- **x** (SparseTensor) - 输入 Tensor,可以为 Coo 或 Csr 格式。数据类型为 float32、float64。
- **y** (SparseTensor|DenseTensor) - 输入 Tensor,可以为 Coo 或 Csr 格式 或 DenseTensor。数据类型为 float32、float64。
- **beta** (float, 可选) - `input` 的系数。默认:1.0。
- **alpha** (float, 可选) - `x * y` 的系数。默认:1.0。
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。

返回
:::::::::
SparseTensor|DenseTensor: 其 Tensor 类型、dtype、shape 与 `input` 相同。


代码示例
:::::::::

COPY-FROM: paddle.incubate.sparse.addmm
29 changes: 29 additions & 0 deletions docs/api/paddle/incubate/sparse/asin_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
.. _cn_api_paddle_incubate_sparse_asin:

asin
-------------------------------

.. py:function:: paddle.incubate.sparse.asin(x, name=None)
逐元素计算输入 :attr:`x` 的反正弦,要求 输入 :attr:`x` 为 `SparseCooTensor` 或 `SparseCsrTensor` 。

数学公式:

.. math::
out = asin(x)
参数
:::::::::
- **x** (SparseTensor) - 输入的稀疏 Tensor,可以为 Coo 或 Csr 格式,数据类型为 float32、float64。
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。

返回
:::::::::
多维稀疏 Tensor, 数据类型和稀疏格式与 :attr:`x` 相同 。


代码示例
:::::::::

COPY-FROM: paddle.incubate.sparse.asin
29 changes: 29 additions & 0 deletions docs/api/paddle/incubate/sparse/asinh_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
.. _cn_api_paddle_incubate_sparse_asinh:

asinh
-------------------------------

.. py:function:: paddle.incubate.sparse.asinh(x, name=None)
逐元素计算输入 :attr:`x` 的反双曲正弦,要求 输入 :attr:`x` 为 `SparseCooTensor` 或 `SparseCsrTensor` 。

数学公式:

.. math::
out = asinh(x)
参数
:::::::::
- **x** (SparseTensor) - 输入的稀疏 Tensor,可以为 Coo 或 Csr 格式,数据类型为 float32、float64。
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。

返回
:::::::::
多维稀疏 Tensor, 数据类型和稀疏格式与 :attr:`x` 相同 。


代码示例
:::::::::

COPY-FROM: paddle.incubate.sparse.asinh
29 changes: 29 additions & 0 deletions docs/api/paddle/incubate/sparse/atan_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
.. _cn_api_paddle_incubate_sparse_atan:

atan
-------------------------------

.. py:function:: paddle.incubate.sparse.atan(x, name=None)
逐元素计算输入 :attr:`x` 的反正切,要求 输入 :attr:`x` 为 `SparseCooTensor` 或 `SparseCsrTensor` 。

数学公式:

.. math::
out = atan(x)
参数
:::::::::
- **x** (SparseTensor) - 输入的稀疏 Tensor,可以为 Coo 或 Csr 格式,数据类型为 float32、float64。
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。

返回
:::::::::
多维稀疏 Tensor, 数据类型和稀疏格式与 :attr:`x` 相同 。


代码示例
:::::::::

COPY-FROM: paddle.incubate.sparse.atan
29 changes: 29 additions & 0 deletions docs/api/paddle/incubate/sparse/atanh_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
.. _cn_api_paddle_incubate_sparse_atanh:

atanh
-------------------------------

.. py:function:: paddle.incubate.sparse.atanh(x, name=None)
逐元素计算输入 :attr:`x` 的反双曲正切,要求 输入 :attr:`x` 为 `SparseCooTensor` 或 `SparseCsrTensor` 。

数学公式:

.. math::
out = atanh(x)
参数
:::::::::
- **x** (SparseTensor) - 输入的稀疏 Tensor,可以为 Coo 或 Csr 格式,数据类型为 float32、float64。
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。

返回
:::::::::
多维稀疏 Tensor, 数据类型和稀疏格式与 :attr:`x` 相同 。


代码示例
:::::::::

COPY-FROM: paddle.incubate.sparse.atanh
26 changes: 26 additions & 0 deletions docs/api/paddle/incubate/sparse/cast_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
.. _cn_api_paddle_incubate_sparse_cast:

cast
-------------------------------

.. py:function:: paddle.incubate.sparse.cast(x, index_dtype=None, value_dtype=None, name=None)
输入 :attr:`x` 为 `SparseCooTensor` 或 `SparseCsrTensor` 。将稀疏 Tensor 的 index 转换为 `index_dtype` 类型
( `SparseCsrTensor` 的 index 指: `crows` 与 `col` ),value 转换为 `value_dtype` 类型,

参数
:::::::::
- **x** (SparseTensor) - 输入的稀疏 Tensor,可以为 Coo 或 Csr 格式,数据类型为 float32、float64。
- **index_dtype** (np.dtype|str, optional) - SparseCooTensor 的 index 类型,SparseCsrTensor 的 crows/cols 类型。可以是 uint8,int8,int16,int32,int64。
- **value_dtype** (np.dtype|str, optional) - SparseCooTensor 或 SparseCsrTensor 的 value 类型。可以是 uint8,int8,int16,int32,int64。
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。

返回
:::::::::
多维稀疏 Tensor,稀疏格式与 :attr:`x` 相同,数据类型为被转换后的类型。


代码示例
:::::::::

COPY-FROM: paddle.incubate.sparse.cast
29 changes: 29 additions & 0 deletions docs/api/paddle/incubate/sparse/deg2rad_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
.. _cn_api_paddle_incubate_sparse_deg2rad:

deg2rad
-------------------------------

.. py:function:: paddle.incubate.sparse.deg2rad(x, name=None)
逐元素将输入 :attr:`x` 从度转换为弧度,要求 输入 :attr:`x` 为 `SparseCooTensor` 或 `SparseCsrTensor` 。

数学公式:

.. math::
deg2rad(x) = \pi * x / 180
参数
:::::::::
- **x** (SparseTensor) - 输入的稀疏 Tensor,可以为 Coo 或 Csr 格式,数据类型为 float32、float64。
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。

返回
:::::::::
多维稀疏 Tensor, 数据类型和稀疏格式与 :attr:`x` 相同 。


代码示例
:::::::::

COPY-FROM: paddle.incubate.sparse.deg2rad
Loading

0 comments on commit ff29179

Please sign in to comment.