Skip to content

Commit 1027a39

Browse files
author
zhangkaihuo
authored
添加sparse路径,添加创建Sparse Tensor的文档 (#4646)
1 parent 9e8b71c commit 1027a39

File tree

6 files changed

+107
-0
lines changed

6 files changed

+107
-0
lines changed

docs/api/gen_doc.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,7 @@ def set_api_sketch():
472472
paddle.fft,
473473
paddle.version,
474474
paddle.profiler,
475+
paddle.sparse,
475476
]
476477

477478
alldict = {}

docs/api/index_cn.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,5 @@ API 文档
7575
| paddle.vision | 视觉领域API,包括 数据集 Cifar10 、数据处理 |
7676
| | ColorJitter、常用基础网络结构 ResNet 等。 |
7777
+-------------------------------+-------------------------------------------------------+
78+
| paddle.sparse | 稀疏领域的API。 |
79+
+-------------------------------+-------------------------------------------------------+

docs/api/index_en.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,6 @@ In this version, PaddlePaddle has made many optimizations to the APIs. You can r
8484
| | data processing ColorJitter, and commonly used models |
8585
| | like resnet |
8686
+-------------------------------+-------------------------------------------------------+
87+
| paddle.sparse | The Sparse domain API. |
88+
+-------------------------------+-------------------------------------------------------+
8789

docs/api/paddle/Overview_cn.rst

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ paddle 目录下包含tensor、device、framework相关API以及某些高层API
1818
- :ref:`framework相关 <about_framework>`
1919
- :ref:`device相关 <about_device>`
2020
- :ref:`高层API相关 <about_hapi>`
21+
- :ref:`稀疏API相关 <about_sparse_api>`
2122

2223

2324

@@ -386,3 +387,15 @@ device相关
386387
" :ref:`paddle.Model <cn_api_paddle_Model>` ", "一个具备训练、测试、推理的神经网络"
387388
" :ref:`paddle.summary <cn_api_paddle_summary>` ", "打印网络的基础结构和参数信息"
388389
" :ref:`paddle.flops <cn_api_paddle_flops>` ", "打印网络的基础结构和参数信息"
390+
391+
.. _about_sparse_api:
392+
393+
稀疏API相关
394+
::::::::::::::::::::
395+
396+
.. csv-table::
397+
:header: "API名称", "API功能"
398+
:widths: 10, 30
399+
400+
" :ref:`paddle.sparse.sparse_coo_tensor<cn_api_paddle_sparse_coo_tensor>` ", "创建一个COO(Coordinate)格式的稀疏Tensor"
401+
" :ref:`paddle.sparse.sparse_csr_tensor<cn_api_paddle_sparse_csr_tensor>` ", "创建一个CSR(Compressed Sparse Row)格式的稀疏Tensor"
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
.. _cn_api_paddle_sparse_coo_tensor:
2+
3+
sparse_coo_tensor
4+
-------------------------------
5+
6+
7+
.. py:function:: paddle.sparse.sparse_coo_tensor(indices, values, shape=None, dtype=None, place=None, stop_gradient=True)
8+
9+
该API通过已知的非零元素的 ``indices`` 和 ``values`` 来创建一个coordinate格式的稀疏tensor,tensor类型为 ``paddle.Tensor`` 。
10+
11+
其中 ``indices`` 是存放坐标信息,是一个二维数组,每一列是对应非零元素的坐标,shape是 ``[sparse_dim, nnz]`` , ``sparse_dim`` 是坐标的维度, ``nnz`` 是非零元素的个数。
12+
13+
其中 ``values`` 是存放非零元素,是一个多维数组,shape是 ``[nnz, {dense_dim}]`` , nnz是非零元素个数, ``dense_dim`` 是非零元素的维度。
14+
15+
16+
如果 ``values`` 已经是一个tensor,且 ``dtype`` 、 ``place`` 没有发生变化,将不会发生 tensor 的拷贝并返回原来的 tensor。
17+
否则会创建一个新的tensor,且不保留原来计算图。
18+
19+
参数
20+
:::::::::
21+
22+
- **indices** (list|tuple|ndarray|Tensor) - 初始化tensor的数据,可以是
23+
list,tuple,numpy\.ndarray,paddle\.Tensor类型。
24+
- **values** (list|tuple|ndarray|Tensor) - 初始化tensor的数据,可以是
25+
list,tuple,numpy\.ndarray,paddle\.Tensor类型。
26+
- **shape** (list|tuple, optional) - 稀疏Tensor的形状,也是Tensor的形状,如果没有提供,将自动推测出最小的形状。
27+
- **dtype** (str|np.dtype, optional) - 创建tensor的数据类型,可以是 'bool' ,'float16','float32',
28+
'float64' ,'int8','int16','int32','int64','uint8','complex64','complex128'。
29+
默认值为None,如果 ``values`` 为python浮点类型,则从
30+
:ref:`cn_api_paddle_framework_get_default_dtype` 获取类型,如果 ``values`` 为其他类型,
31+
则会自动推导类型。
32+
- **place** (CPUPlace|CUDAPinnedPlace|CUDAPlace|str, optional) - 创建tensor的设备位置,可以是
33+
CPUPlace, CUDAPinnedPlace, CUDAPlace。默认值为None,使用全局的place。
34+
- **stop_gradient** (bool, optional) - 是否阻断Autograd的梯度传导。默认值为True,此时不进行梯度传传导。
35+
36+
返回
37+
:::::::::
38+
通过 ``indices`` 和 ``values`` 创建的稀疏Tensor。
39+
40+
代码示例
41+
:::::::::
42+
43+
COPY-FROM: paddle.sparse.sparse_coo_tensor
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
.. _cn_api_paddle_sparse_csr_tensor:
2+
3+
sparse_csr_tensor
4+
-------------------------------
5+
6+
7+
.. py:function:: paddle.sparse.sparse_csr_tensor(crows, cols, values, shape, dtype=None, place=None, stop_gradient=True)
8+
9+
该API通过已知的非零元素的 ``crows`` , ``cols`` 和 ``values`` 来创建一个CSR(Compressed Sparse Row) 格式的稀疏tensor,tensor类型为 ``paddle.Tensor`` 。
10+
11+
当前 ``sparse_csr_tensor`` 要求输入的 ``crows`` 中每个batch的数据是递增的, ``cols`` 也是递增的。
12+
13+
``crows`` 可以是 scalar,tuple,list,numpy\.ndarray,paddle\.Tensor。
14+
``cols`` 可以是 scalar,tuple,list,numpy\.ndarray,paddle\.Tensor。
15+
``values`` 可以是 scalar,tuple,list,numpy\.ndarray,paddle\.Tensor。
16+
17+
18+
如果 ``values`` 已经是一个tensor,且 ``dtype`` 、 ``place`` 没有发生变化,将不会发生 tensor 的拷贝并返回原来的 tensor。
19+
否则会创建一个新的tensor,且不保留原来计算图。
20+
21+
参数
22+
:::::::::
23+
24+
- **crows** (list|tuple|ndarray|Tensor) - 每行第一个非零元素在 ``values`` 的起始位置。可以是
25+
list,tuple,numpy\.ndarray,paddle\.Tensor类型。
26+
- **cols** (list|tuple|ndarray|Tensor) - 一维数组,存储每个非零元素的列信息。可以是
27+
list,tuple,numpy\.ndarray,paddle\.Tensor类型。
28+
- **values** (list|tuple|ndarray|Tensor) - 一维数组,存储非零元素,可以是
29+
list,tuple,numpy\.ndarray,paddle\.Tensor类型。
30+
- **shape** (list|tuple) - 稀疏Tensor的形状,也是Tensor的形状,如果没有提供,将自动推测出最小的形状。
31+
- **dtype** (str|np.dtype, optional) - 创建tensor的数据类型,可以是 'bool' ,'float16','float32',
32+
'float64' ,'int8','int16','int32','int64','uint8','complex64','complex128'。
33+
默认值为None,如果 ``values`` 为python浮点类型,则从
34+
:ref:`cn_api_paddle_framework_get_default_dtype` 获取类型,如果 ``values`` 为其他类型,
35+
则会自动推导类型。
36+
- **place** (CPUPlace|CUDAPinnedPlace|CUDAPlace|str, optional) - 创建tensor的设备位置,可以是
37+
CPUPlace, CUDAPinnedPlace, CUDAPlace。默认值为None,使用全局的place。
38+
- **stop_gradient** (bool, optional) - 是否阻断Autograd的梯度传导。默认值为True,此时不进行梯度传传导。
39+
40+
返回
41+
:::::::::
42+
通过 ``crows``, ``cols`` 和 ``values`` 创建的稀疏Tensor。
43+
44+
**代码示例**
45+
46+
COPY-FROM: paddle.sparse.sparse_csr_tensor

0 commit comments

Comments
 (0)