Skip to content

Commit

Permalink
[Hackathon 3rd No.22] add Chinese documents of paddle.incubate.sparse…
Browse files Browse the repository at this point in the history
….reshape (#5360)

* add sparse.reshape document

* Update and rename reshape.rst to reshape_cn.rst
  • Loading branch information
OccupyMars2025 authored Oct 17, 2022
1 parent 4d0207c commit dba0dad
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/api/paddle/incubate/sparse/Overview_cn.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ paddle.incubate.sparse 目录包含飞桨框架支持稀疏数据存储和计算
" :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:
Expand Down
42 changes: 42 additions & 0 deletions docs/api/paddle/incubate/sparse/reshape_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
.. _cn_api_paddle_incubate_sparse_reshape:

reshape
-------------------------------

.. py:function:: paddle.incubate.sparse.reshape(x, shape, name=None)
在保持输入 ``x`` 数据不变的情况下,改变 ``x`` 的形状。 ``x`` 必须是一个 ``SparseCooTensor`` 或者 ``SparseCsrTensor`` 。

目前只能针对输入 ``x`` 的 ``sparse dims`` 部分改变形状,但是 ``shape`` 仍必须指定为变形后的 ``Tensor`` 的完整的形状。

注意如果 ``x`` 是一个 ``SparseCsrTensor`` , 则 ``len(shape)`` 必须为 2 或者 3。

在指定目标 ``shape`` 时存在一些技巧:

- 1. -1 表示这个维度的值是从 ``x`` 的元素总数和剩余维度推断出来的。因此,有且只有一个维度可以被设置为-1。
- 2. 0 表示实际的维数是从 ``x`` 的对应维数中复制出来的,因此 ``shape`` 中 0 的索引值不能超过 ``x`` 的维度。

这里有一些例子来解释它们:

- 1. 给定一个形状为[2,4,6]的三维 Tensor x ,目标形状为[6,8],则将 x 变换为形状为[6,8]的 2-D 张量,且 x 的数据保持不变。
- 2. 给定一个形状为[2,4,6]的三维 Tensor x ,目标形状为[2,3,-1,2],则将 x 变换为形状为[2,3,4,2]的 4-D 张量,且 x 的数据保持不变。在这种情况下,目标形状的一个维度被设置为 -1 ,这个维度的值是从 x 的元素总数和剩余维度推断出来的。
- 3. 给定一个形状为[2,4,6]的三维 Tensor x ,目标形状为[-1,0,3,2],则将 x 变换为形状为[2,4,3,2]的 4-D 张量,且 x 的数据保持不变。在这种情况下, 0 对应位置的维度值将从 x 的对应维数中复制,-1 对应位置的维度值由 x 的元素总数和剩余维度推断出来。

参数
:::::::::

- **x** (Tensor) - ``sparse tensor``,数据类型为 ``float32``、 ``float64``、 ``int32``、 ``int64`` 或者 ``bool``。
- **shape** (list|tuple) - 数据类型是 ``int32``。定义目标形状。目标形状最多只能有一个维度为 -1 。
- **name** (str ,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None 。

返回
:::::::::

``Tensor`` : 改变形状后的 ``Tensor``,数据类型与 ``x`` 相同。


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

COPY-FROM: paddle.incubate.sparse.reshape

0 comments on commit dba0dad

Please sign in to comment.