Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Hackathon 3rd No.22] add Chinese documents of paddle.incubate.sparse.reshape #5360

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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