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 4th No.29】为 Paddle 新增 paddle.sparse.slice 稀疏 API #5895

Merged
merged 4 commits into from
Jun 3, 2023
Merged
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
51 changes: 51 additions & 0 deletions docs/api/paddle/sparse/slice_cn.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
.. _cn_api_paddle_sparse_slice:

slice
-------------------------------

.. py:function:: paddle.sparse.slice(x, axis, starts, ends, name=None):

沿多个轴生成 ``x`` 的切片。使用 ``axes`` 、 ``starts`` 和 ``ends`` 属性来指定轴列表中每个轴的起点和终点位置,并使用此信息来对 ``x`` 切片。
如果向 ``starts`` 或 ``ends`` 传递负值如 :math:`-i`,则表示该轴的反向第 :math:`i-1` 个位置(这里以 0 为初始位置)。
如果传递给 ``starts`` 或 ``end`` 的值大于 n (维度中的元素数目),则表示 n。
当切片一个未知数量的维度时,建议传入 ``INT_MAX``。
``axes`` 、 ``starts`` 和 ``ends`` 三个参数的元素数目必须相等。

以下示例将解释切片如何工作 (此处只介绍 Slice 的概念, 故不区分稀疏和稠密 Tensor):

::

示例 1:
给定:
data=[[1,2,3,4],[5,6,7,8],]
axes=[0,1]
starts=[1,0]
ends=[2,3]
则:
result=[[5,6,7],]

示例 2:
给定:
data=[[1,2,3,4],[5,6,7,8],]
starts=[0,1]
ends=[-1,1000] # 此处-1 表示第 0 维的反向第 0 个位置,索引值是 1。
则:
result=[[2,3,4],] # 即 data[0:1, 1:4]

参数
:::::::::
- **x** (Tensor) - 输入的多维 ``Tensor``,数据类型为 bool、float16、float32、float64、int32 或 int64。
- **axis** (list|tuple|Tensor) - 数据类型是 ``int32``。如果 ``axes`` 的类型是 list 或 tuple, 它的元素可以是整数或者形状为[1]的 ``Tensor``。如果 ``axes`` 的类型是 ``Tensor``,则是 1-D ``Tensor``。表示进行切片的轴。
- **starts** (list|tuple|Tensor) - 数据类型是 ``int32``。如果 ``starts`` 的类型是 list 或 tuple, 它的元素可以是整数或者形状为[1]的 ``Tensor``。如果 ``starts`` 的类型是 ``Tensor``,则是 1-D ``Tensor``。表示在各个轴上切片的起始索引值。
- **ends** (list|tuple|Tensor) - 数据类型是 ``int32``。如果 ``ends`` 的类型是 list 或 tuple, 它的元素可以是整数或者形状为[1]的 ``Tensor``。如果 ``ends`` 的类型是 ``Tensor``,则是 1-D ``Tensor``。表示在各个轴上切片的结束索引值。

返回
::::::::::::

多维 ``Tensor``,数据类型与 ``x`` 相同。


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

COPY-FROM: paddle.sparse.slice